gen-calltree-dumpbin.pl... call tree analysis based on disassembly of e:\wmv-debug\DEBUG\janusdrmila.lib 83 named functions identified (this may include some register names) **************************************************************************** these functions are not called and are assessed to be top-level functions: **************************************************************************** -> ??0CDrmCritSec@@QAE@XZ proto: (public: __thiscall CDrmCritSec::CDrmCritSec(void)): _InitializeCriticalSection -> ??0DRM_STATE@@QAE@XZ proto: (public: __thiscall DRM_STATE::DRM_STATE(void)): -> ??0DrmHelper@@QAE@XZ proto: (public: __thiscall DrmHelper::DrmHelper(void)): -> ??0XDrm@@QAE@XZ proto: (public: __thiscall XDrm::XDrm(void)): -> ??1CDrmCritSec@@QAE@XZ proto: (public: __thiscall CDrmCritSec::~CDrmCritSec(void)): _DeleteCriticalSection -> ??1DrmHelper@@QAE@XZ proto: (public: __thiscall DrmHelper::~DrmHelper(void)): ?ReleaseDrmDllModule@DrmHelper@@QAEXXZ -> ??1XDrm@@QAE@XZ proto: (public: __thiscall XDrm::~XDrm(void)): _CeDRM_Mgr_UnBind _CeDRM_Mgr_Delete ??3@YAXPAX@Z -> ?CanBind@XDrm@@QAEJXZ proto: (public: long __thiscall XDrm::CanBind(void)): ?MapDRMError@@YAJJ@Z -> ?CanDecrypt@XDrm@@QAEJXZ proto: (public: long __thiscall XDrm::CanDecrypt(void)): _CeDRM_Mgr_Bind ?MapDRMError@@YAJJ@Z -> ?CeDRM_Mgr_DevCertGenerateChallenge@@YAJPAXPAGPAKPAE2@Z proto: (long __cdecl CeDRM_Mgr_DevCertGenerateChallenge(void *,unsigned short *,unsigned long *,unsigned char *,unsigned long *)): -> ?CeDRM_Mgr_DevCertProcessResponse@@YAJPAXPAEKPAJ@Z proto: (long __cdecl CeDRM_Mgr_DevCertProcessResponse(void *,unsigned char *,unsigned long,long *)): -> ?Commit@XDrm@@QAEJXZ proto: (public: long __thiscall XDrm::Commit(void)): _CeDRM_Mgr_Commit ?MapDRMError@@YAJJ@Z -> ?Decrypt@XDrm@@QAEJKPAE@Z proto: (public: long __thiscall XDrm::Decrypt(unsigned long,unsigned char *)): _CeDRM_Mgr_Decrypt ?MapDRMError@@YAJJ@Z -> ?GenerateChallenge@XDrm@@QAEJPAPAD0PAPAG@Z proto: (public: long __thiscall XDrm::GenerateChallenge(char * *,char * *,unsigned short * *)): _CeDRM_Mgr_GenerateChallenge _LocalAllocTrace dynamic _wcslen ??2@YAPAXI@Z _wcscpy _LocalFree ?MapDRMError@@YAJJ@Z -> ?GetDRMSecurityVersion@XDrm@@QAEJPAPAG@Z proto: (public: long __thiscall XDrm::GetDRMSecurityVersion(unsigned short * *)): ?Init@XDrm@@QAEJIPBEI0I0PAX1@Z ?GetPropertiesInternal@@YAJPAXPAPAGK@Z ?MapDRMError@@YAJJ@Z -> ?GetDRMVersion@XDrm@@QAEJPAPAG@Z proto: (public: long __thiscall XDrm::GetDRMVersion(unsigned short * *)): ?Init@XDrm@@QAEJIPBEI0I0PAX1@Z ?GetPropertiesInternal@@YAJPAXPAPAGK@Z ?MapDRMError@@YAJJ@Z -> ?GetDRMVersionCode@XDrm@@QAE?AW4DRM_VERSION_CODE@@XZ proto: (public: enum DRM_VERSION_CODE __thiscall XDrm::GetDRMVersionCode(void)): -> ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ proto: (public: struct HINSTANCE__ * __thiscall DrmHelper::GetDrmDllModule(void)): _LoadLibraryW -> ?GetLicenseFromURL@XDrm@@QAEJPAG0@Z proto: (public: long __thiscall XDrm::GetLicenseFromURL(unsigned short *,unsigned short *)): ?Init@XDrm@@QAEJIPBEI0I0PAX1@Z _wcslen _CeDRM_Mgr_SetV2Header ?MapDRMError@@YAJJ@Z _CeDRM_Mgr_GenerateChallenge _strlen _LocalAllocTrace _strcpy ?HrWSzToSz@@YAJPBGPAPADI@Z ?HrSendHttp@@YAJPBDPADPAPAD1H@Z _CeDRM_Mgr_ProcessResponse _LocalFree ??3@YAXPAX@Z -> ?GetPropertiesInternal@@YAJPAXPAPAGK@Z proto: (long __cdecl GetPropertiesInternal(void *,unsigned short * *,unsigned long)): _CeDRM_Mgr_GetDeviceProperty ??2@YAPAXI@Z dynamic ??3@YAXPAX@Z -> ?GetStoreLocation@DrmHelper@@SAJPAGH@Z proto: (public: static long __cdecl DrmHelper::GetStoreLocation(unsigned short *,int)): dynamic _NKDbgPrintfW _wcslen _wcscpy -> ?GetSystemInfo@XDrm@@QAEJPAPAG@Z proto: (public: long __thiscall XDrm::GetSystemInfo(unsigned short * *)): ?Init@XDrm@@QAEJIPBEI0I0PAX1@Z ?GetPropertiesInternal@@YAJPAXPAPAGK@Z ?MapDRMError@@YAJJ@Z -> ?Init@XDrm@@QAEJIPBEI0I0PAX1@Z proto: (public: long __thiscall XDrm::Init(unsigned int,unsigned char const *,unsigned int,unsigned char const *,unsigned int,unsigned char const *,void *,void *)): ??2@YAPAXI@Z ??0DRM_STATE@@QAE@XZ _CeDRM_Mgr_Create ?GetStoreLocation@DrmHelper@@SAJPAGH@Z _NKDbgPrintfW _wcslen _CeDRM_Mgr_Initialize ??3@YAXPAX@Z ?MapDRMError@@YAJJ@Z -> ?MapDRMError@@YAJJ@Z proto: (long __cdecl MapDRMError(long)): -> ?PKCryptoCleanup@@YAXXZ proto: (void __cdecl PKCryptoCleanup(void)): -> ?PKCryptoInit@@YAHXZ proto: (int __cdecl PKCryptoInit(void)): -> ?ProcessResponse@XDrm@@QAEJPBD@Z proto: (public: long __thiscall XDrm::ProcessResponse(char const *)): _strlen _CeDRM_Mgr_ProcessResponse ?GetDRMVersionCode@XDrm@@QAE?AW4DRM_VERSION_CODE@@XZ dynamic ?MapDRMError@@YAJJ@Z -> ?ReleaseDrmDllModule@DrmHelper@@QAEXXZ proto: (public: void __thiscall DrmHelper::ReleaseDrmDllModule(void)): dynamic -> ?Reset@XDrm@@QAEXXZ proto: (public: void __thiscall XDrm::Reset(void)): -> ?SetEnhancedData@XDrm@@QAEJKPBE@Z proto: (public: long __thiscall XDrm::SetEnhancedData(unsigned long,unsigned char const *)): _CeDRM_Mgr_SetV2Header ?MapDRMError@@YAJJ@Z -> ?SetPMLicenseStore@XDrm@@QAEJPBGKPBE@Z proto: (public: long __thiscall XDrm::SetPMLicenseStore(unsigned short const *,unsigned long,unsigned char const *)): _NKDbgPrintfW -> ?SetRights@XDrm@@QAEJK@Z proto: (public: long __thiscall XDrm::SetRights(unsigned long)): ?MapDRMError@@YAJJ@Z -> ?SetV1ContentHeader@XDrm@@QAEJPBEK0K0K@Z proto: (public: long __thiscall XDrm::SetV1ContentHeader(unsigned char const *,unsigned long,unsigned char const *,unsigned long,unsigned char const *,unsigned long)): _CeDRM_Mgr_SetV1Header ?MapDRMError@@YAJJ@Z -> _$E1 ??0DrmHelper@@QAE@XZ _atexit ??0CDrmCritSec@@QAE@XZ _atexit -> _$E2 ??1DrmHelper@@QAE@XZ ??1CDrmCritSec@@QAE@XZ -> _CeDRM_Mgr_CleanupLicenseStore ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_GetDeviceCert ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_GetLicenseData ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_GetSecureClock ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_MeteringGenerateChallenge ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_MeteringProcessResponse ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_SecureClockGenerateChallenge ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_SecureClockProcessResponse ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_SynclistGenerateChallenge ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic **************************************************************************** these functions were called in the code: **************************************************************************** -> ??0CDrmCritSec@@QAE@XZ -> ??0DRM_STATE@@QAE@XZ -> ??0DrmHelper@@QAE@XZ -> ??1CDrmCritSec@@QAE@XZ -> ??1DrmHelper@@QAE@XZ -> ??2@YAPAXI@Z -> ??3@YAXPAX@Z -> ?GetDRMVersionCode@XDrm@@QAE?AW4DRM_VERSION_CODE@@XZ -> ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ -> ?GetPropertiesInternal@@YAJPAXPAPAGK@Z -> ?GetStoreLocation@DrmHelper@@SAJPAGH@Z -> ?HrSendHttp@@YAJPBDPADPAPAD1H@Z -> ?HrWSzToSz@@YAJPBGPAPADI@Z -> ?Init@XDrm@@QAEJIPBEI0I0PAX1@Z -> ?MapDRMError@@YAJJ@Z -> ?ReleaseDrmDllModule@DrmHelper@@QAEXXZ -> _CeDRM_Mgr_Bind ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_Commit ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_Create ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_Decrypt ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_Delete ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_GenerateChallenge ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_GetDeviceProperty ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_Initialize ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_ProcessResponse ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_SetV1Header ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_SetV2Header ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _CeDRM_Mgr_UnBind ?GetDrmDllModule@DrmHelper@@QAEPAUHINSTANCE__@@XZ dynamic -> _DeleteCriticalSection -> _InitializeCriticalSection -> _LoadLibraryW -> _LocalAllocTrace -> _LocalFree -> _NKDbgPrintfW -> _atexit -> _strcpy -> _strlen -> _wcscpy -> _wcslen -> dynamic