gen-calltree-dumpbin.pl... call tree analysis based on disassembly of e:\wmv-debug\DEBUG\janusdrm.lib 206 named functions identified (this may include some register names) **************************************************************************** these functions are not called and are assessed to be top-level functions: **************************************************************************** -> ??0MapWSzToPtr@@QAE@H@Z proto: (public: __thiscall MapWSzToPtr::MapWSzToPtr(int)): -> ??0XDrm@@QAE@XZ proto: (public: __thiscall XDrm::XDrm(void)): -> ??1MapWSzToPtr@@QAE@XZ proto: (public: __thiscall MapWSzToPtr::~MapWSzToPtr(void)): ?RemoveAll@MapWSzToPtr@@QAEXXZ -> ??1XDrm@@QAE@XZ proto: (public: __thiscall XDrm::~XDrm(void)): _CeDRM_Mgr_UnBind _CeDRM_Mgr_Delete ??3@YAXPAX@Z -> ??AMapWSzToPtr@@QAEAAPAXPBG@Z proto: (public: void * & __thiscall MapWSzToPtr::operator[](unsigned short const *)): ?GetAssocAt@MapWSzToPtr@@IBEPAUCAssoc@1@PBGAAI@Z ?InitHashTable@MapWSzToPtr@@QAEXIH@Z ?NewAssoc@MapWSzToPtr@@IAEPAUCAssoc@1@XZ ?WszDupWsz@@YAPAGPBG@Z ??4SPWSZ@@QAEPAGPAG@Z -> ?AppendWString@@YAJPAPAGPBGJAAJJ2@Z proto: (long __cdecl AppendWString(unsigned short * *,unsigned short const *,long,long &,long,long &)): ?DRMDebugMessage@@YAXPBDHJ@Z _wcslen _realloc _wcsncpy -> ?BlobToFile@Drm@@YAJPBEKPBD@Z proto: (long __cdecl Drm::BlobToFile(unsigned char const *,unsigned long,char const *)): dynamic ??2@YAPAXI@Z ?BlobToFile@Drm@@YAJPBEKPBG@Z ??3@YAXPAX@Z -> ?Byte2BigEndian@@YAKPAE@Z proto: (unsigned long __cdecl Byte2BigEndian(unsigned char *)): -> ?CBC64Finalize@@YAIPAU_CBCKey@@PAUCBCState@@PAI@Z proto: (unsigned int __cdecl CBC64Finalize(struct _CBCKey *,struct CBCState *,unsigned int *)): -> ?CBC64InitState@@YAXPAUCBCState@@@Z proto: (void __cdecl CBC64InitState(struct CBCState *)): -> ?CBC64InvKey@@YAXPAU_CBCKey@@0@Z proto: (void __cdecl CBC64InvKey(struct _CBCKey *,struct _CBCKey *)): ?inv32@@YAII@Z -> ?CBC64Invert@@YAIPAU_CBCKey@@0IIIIPAI@Z proto: (unsigned int __cdecl CBC64Invert(struct _CBCKey *,struct _CBCKey *,unsigned int,unsigned int,unsigned int,unsigned int,unsigned int *)): -> ?CBC64Update@@YAXPAU_CBCKey@@PAUCBCState@@KPAE@Z proto: (void __cdecl CBC64Update(struct _CBCKey *,struct CBCState *,unsigned long,unsigned char *)): _AllignedDWORD -> ?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 *)): -> ?CheckLicenseCertChain@@YAJPAUCERTtag@@K_N@Z proto: (long __cdecl CheckLicenseCertChain(struct CERTtag *,unsigned long,bool)): _memcmp ?CheckCert@@YAJPAUCERTtag@@PAUPUBKEY@@_N@Z -> ?CheckWMDMAppCert@@YAJPAVCDRMPKCrypto@@PAUAPPCERT@@@Z proto: (long __cdecl CheckWMDMAppCert(class CDRMPKCrypto *,struct APPCERT *)): ?DRMDebugMessage@@YAXPBDHJ@Z ?IsVersionOK@@YA_NPAE0@Z _memcpy ?Byte2LittleEndian@@YAKPAE@Z ?PKverify@CDRMPKCrypto@@QAEHPAUPUBKEY@@PAEK1@Z -> ?Commit@XDrm@@QAEJXZ proto: (public: long __thiscall XDrm::Commit(void)): _CeDRM_Mgr_Commit ?MapDRMError@@YAJJ@Z -> ?CopyFileByHandle@Drm@@YAJPAX0@Z proto: (long __cdecl Drm::CopyFileByHandle(void *,void *)): __chkstk dynamic -> ?CreateFileExclusiveW@Drm@@YAPAXPBGKKPAU_SECURITY_ATTRIBUTES@@KKPAXKK@Z proto: (void * __cdecl Drm::CreateFileExclusiveW(unsigned short const *,unsigned long,unsigned long,struct _SECURITY_ATTRIBUTES *,unsigned long,unsigned long,void *,unsigned long,unsigned long)): _CreateFileW_PC2CE ?LockFailed@Drm@@YAHXZ dynamic -> ?DRMDebugMessage@@YAXPBDH0@Z proto: (void __cdecl DRMDebugMessage(char const *,int,char const *)): -> ?DRMGenerateKey@@YAXPAEI0I0@Z proto: (void __cdecl DRMGenerateKey(unsigned char *,unsigned int,unsigned char *,unsigned int,unsigned char *)): _A_SHAInit _A_SHAUpdate _A_SHAFinal _memcpy -> ?DRMGuidTo64Wsz@@YAXU_GUID@@PAG@Z proto: (void __cdecl DRMGuidTo64Wsz(struct _GUID,unsigned short *)): ?Encode3@@YAJQAEQADH@Z ?Encode2@@YAJQAEQADH@Z ?Encode1@@YAJEQADH@Z -> ?DRMHr64WszToBlob@@YAJPBGPAPAEPAK@Z proto: (long __cdecl DRMHr64WszToBlob(unsigned short const *,unsigned char * *,unsigned long *)): ?HrWSzToSz@@YAJPBGPAPADI@Z ?DRMHr64SzToBlob@@YAJPBDPAPAEPAK@Z ??3@YAXPAX@Z -> ?DecodeByteBlob@@YAJPAGKPAE@Z proto: (long __cdecl DecodeByteBlob(unsigned short *,unsigned long,unsigned char *)): _wcslen ??2@YAPAXI@Z dynamic ?DRMHr64SzToBlob@@YAJPBDPAPAEPAK@Z _memcpy ??3@YAXPAX@Z -> ?Decrypt@XDrm@@QAEJKPAE@Z proto: (public: long __thiscall XDrm::Decrypt(unsigned long,unsigned char *)): _CeDRM_Mgr_Decrypt ?MapDRMError@@YAJJ@Z -> ?EncodeByteBlob@@YAJPAEKPAPAG@Z proto: (long __cdecl EncodeByteBlob(unsigned char *,unsigned long,unsigned short * *)): ?DRMHrBlobTo64Sz@@YAJPAEKPAPAD@Z _strlen ??2@YAPAXI@Z dynamic ??3@YAXPAX@Z -> ?FileToBlob@Drm@@YAJPBDPAPAEPAK@Z proto: (long __cdecl Drm::FileToBlob(char const *,unsigned char * *,unsigned long *)): dynamic ??2@YAPAXI@Z ?FileToBlob@Drm@@YAJPBGPAPAEPAK@Z ??3@YAXPAX@Z -> ?FlipBits@@YAPAEPAEH@Z proto: (unsigned char * __cdecl FlipBits(unsigned char *,int)): -> ?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 -> ?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 -> ?GetNextAssoc@MapWSzToPtr@@QBEXAAKPAPAGAAPAX@Z proto: (public: void __thiscall MapWSzToPtr::GetNextAssoc(unsigned long &,unsigned short * *,void * &)const ): ??BSPWSZ@@QAEPAGXZ ?WszDupWsz@@YAPAGPBG@Z -> ?GetSystemInfo@XDrm@@QAEJPAPAG@Z proto: (public: long __thiscall XDrm::GetSystemInfo(unsigned short * *)): ?Init@XDrm@@QAEJIPBEI0I0PAX1@Z ?GetPropertiesInternal@@YAJPAXPAPAGK@Z ?MapDRMError@@YAJJ@Z -> ?GetTempPathNameW@Drm@@YAJPBGPAG@Z proto: (long __cdecl Drm::GetTempPathNameW(unsigned short const *,unsigned short *)): dynamic -> ?GetVersionField@@YA_NPBGHPAK@Z proto: (bool __cdecl GetVersionField(unsigned short const *,int,unsigned long *)): _swscanf -> ?GetVersionQWord@@YA_KPBG@Z proto: (unsigned __int64 __cdecl GetVersionQWord(unsigned short const *)): _swscanf __allshl -> ?GetVersionReleaseNumber@@YAKPBG@Z proto: (unsigned long __cdecl GetVersionReleaseNumber(unsigned short const *)): _swscanf -> ?Hr64SzToBlob@@YAJPBDPAPAEPAK@Z proto: (long __cdecl Hr64SzToBlob(char const *,unsigned char * *,unsigned long *)): _strlen ??2@YAPAXI@Z ?Decode4@@YAJQBDPAEH@Z ?DRMDebugMessage@@YAXPBDHJ@Z ?DecodeLast4@@YAJQBDPAEPAKH@Z ??3@YAXPAX@Z -> ?HrAppendEqDecoded@@YAJPAPAGPBG@Z proto: (long __cdecl HrAppendEqDecoded(unsigned short * *,unsigned short const *)): _wcscspn ?HrAppendN@@YAJPAPAGPBGH@Z ?DRMDebugMessage@@YAXPBDHJ@Z ?HrAppend@@YAJPAPAGPBG@Z -> ?HrAppendEqEncoded@@YAJPAPAGPBG@Z proto: (long __cdecl HrAppendEqEncoded(unsigned short * *,unsigned short const *)): _wcscspn ?HrAppendN@@YAJPAPAGPBGH@Z ?DRMDebugMessage@@YAXPBDHJ@Z ?HrAppend@@YAJPAPAGPBG@Z -> ?HrAppendHTMLEncoded@@YAJPAPAGPBG@Z proto: (long __cdecl HrAppendHTMLEncoded(unsigned short * *,unsigned short const *)): _wcscspn ?HrAppendN@@YAJPAPAGPBGH@Z ?DRMDebugMessage@@YAXPBDHJ@Z ?HrAppend@@YAJPAPAGPBG@Z -> ?HrBlobTo64Sz@@YAJPAEKPAPAD@Z proto: (long __cdecl HrBlobTo64Sz(unsigned char *,unsigned long,char * *)): ??2@YAPAXI@Z ?Encode3@@YAJQAEQADH@Z ?Encode2@@YAJQAEQADH@Z ?Encode1@@YAJEQADH@Z -> ?HrBlobToHSz@@YAJPAEKPAPAD@Z proto: (long __cdecl HrBlobToHSz(unsigned char *,unsigned long,char * *)): ??2@YAPAXI@Z ?DRMDebugMessage@@YAXPBDHJ@Z ?ctoh@@YAXEQAE@Z -> ?HrHSzToBlob@@YAJPBDPAPAEPAK@Z proto: (long __cdecl HrHSzToBlob(char const *,unsigned char * *,unsigned long *)): _strlen ??2@YAPAXI@Z ?htoc@@YAXPAEQAE@Z -> ?HrSzToWSz@@YAJPBDPAPAGI@Z proto: (long __cdecl HrSzToWSz(char const *,unsigned short * *,unsigned int)): _strlen ?HrSzToWSz@@YAJPBDIPAPAGI@Z -> ?HrWSzToSzBuf@@YAJPBGPADHI@Z proto: (long __cdecl HrWSzToSzBuf(unsigned short const *,char *,int,unsigned int)): ?DRMDebugMessage@@YAXPBDHJ@Z dynamic -> ?InvCBC64WS4_asm@@YAIPAII0U_CBCKey@@1@Z proto: (unsigned int __cdecl InvCBC64WS4_asm(unsigned int *,unsigned int,unsigned int *,struct _CBCKey,struct _CBCKey)): ?CBC64WS4_asm@@YAIPAII0U_CBCKey@@@Z -> ?Lookup@MapWSzToPtr@@QBEHPBGAAPAX@Z proto: (public: int __thiscall MapWSzToPtr::Lookup(unsigned short const *,void * &)const ): ?GetAssocAt@MapWSzToPtr@@IBEPAUCAssoc@1@PBGAAI@Z -> ?LookupKey@MapWSzToPtr@@QBEHPBGAAPBG@Z proto: (public: int __thiscall MapWSzToPtr::LookupKey(unsigned short const *,unsigned short const * &)const ): ?GetAssocAt@MapWSzToPtr@@IBEPAUCAssoc@1@PBGAAI@Z ??BSPWSZ@@QAEPAGXZ ?WszDupWsz@@YAPAGPBG@Z -> ?PKCryptoCleanup@@YAXXZ proto: (void __cdecl PKCryptoCleanup(void)): -> ?PKCryptoInit@@YAHXZ proto: (int __cdecl PKCryptoInit(void)): -> ?PKDecryptLarge@CDRMPKCrypto@@QAEJPAUPRIVKEY@@PAEK1@Z proto: (public: long __thiscall CDRMPKCrypto::PKDecryptLarge(struct PRIVKEY *,unsigned char *,unsigned long,unsigned char *)): ?PKdecrypt@CDRMPKCrypto@@QAEJPAUPRIVKEY@@PAE1@Z _memcpy _rc4_key _rc4 -> ?PKEncryptLarge@CDRMPKCrypto@@QAEJPAUPUBKEY@@PAEK1KK@Z proto: (public: long __thiscall CDRMPKCrypto::PKEncryptLarge(struct PUBKEY *,unsigned char *,unsigned long,unsigned char *,unsigned long,unsigned long)): _NewGenRandom ?PKencrypt@CDRMPKCrypto@@QAEJPAUPUBKEY@@PAE1@Z _memcpy _rc4_key _rc4 -> ?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 -> ?RecycleFileW@Drm@@YAJPBG@Z proto: (long __cdecl Drm::RecycleFileW(unsigned short const *)): dynamic -> ?RemoveKey@MapWSzToPtr@@QAEHPBG@Z proto: (public: int __thiscall MapWSzToPtr::RemoveKey(unsigned short const *)): ?HashKey@MapWSzToPtr@@QBEIPBG@Z ??BSPWSZ@@QAEPAGXZ _wcscmp ?FreeAssoc@MapWSzToPtr@@IAEXPAUCAssoc@1@@Z -> ?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 -> ?SysDateToLicDate@@YAXPAU_SYSTEMTIME@@PAE@Z proto: (void __cdecl SysDateToLicDate(struct _SYSTEMTIME *,unsigned char *)): -> ?V2KeyExchangeWorker@@YAJPAE000PAU_CBCKey@@PAURC4_KEYSTRUCT@@@Z proto: (long __cdecl V2KeyExchangeWorker(unsigned char *,unsigned char *,unsigned char *,unsigned char *,struct _CBCKey *,struct RC4_KEYSTRUCT *)): ??0CDRMPKCrypto@@QAE@XZ ?PKinit@CDRMPKCrypto@@QAEJXZ ?DRMDebugMessage@@YAXPBDHJ@Z _memset ?CheckAppCert@@YAJPAVCDRMPKCrypto@@PAUAPPCERT@@@Z ?IsSDKAppCert@@YA_NPAUAPPCERT@@@Z _memcmp _NewGenRandom _memcpy ?PKencrypt@CDRMPKCrypto@@QAEJPAUPUBKEY@@PAE1@Z _rc4_key _rc4 ?CBC64Init@@YAXPAU_CBCKey@@PAUCBCState@@PAE@Z ??1CDRMPKCrypto@@QAE@XZ -> ?rc4args2@@YAXPAURC4_KEYSTRUCT@@PAUAPPCERT@@111PAE2@Z proto: (void __cdecl rc4args2(struct RC4_KEYSTRUCT *,struct APPCERT *,struct APPCERT *,struct APPCERT *,struct APPCERT *,unsigned char *,unsigned char *)): _memcpy _rc4 -> ?rc4args@@YAXPAURC4_KEYSTRUCT@@PAUAPPCERT@@1PAE@Z proto: (void __cdecl rc4args(struct RC4_KEYSTRUCT *,struct APPCERT *,struct APPCERT *,unsigned char *)): _rc4 -> ?stristr@Drm@@YAPADPBD0@Z proto: (char * __cdecl Drm::stristr(char const *,char const *)): _strlen __alloca_probe _memcpy __strlwr _strstr -> _$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: **************************************************************************** -> ??0CAssoc@MapWSzToPtr@@QAE@XZ proto: (public: __thiscall MapWSzToPtr::CAssoc::CAssoc(void)): ??0SPWSZ@@QAE@XZ -> ??0CDRMPKCrypto@@QAE@XZ -> ??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)): -> ??0SPWSZ@@QAE@XZ proto: (public: __thiscall SPWSZ::SPWSZ(void)): -> ??1CDRMPKCrypto@@QAE@XZ -> ??1CDrmCritSec@@QAE@XZ proto: (public: __thiscall CDrmCritSec::~CDrmCritSec(void)): _DeleteCriticalSection -> ??1DrmHelper@@QAE@XZ proto: (public: __thiscall DrmHelper::~DrmHelper(void)): ?ReleaseDrmDllModule@DrmHelper@@QAEXXZ -> ??1SPWSZ@@QAE@XZ proto: (public: __thiscall SPWSZ::~SPWSZ(void)): ??3@YAXPAX@Z -> ??2@YAPAXI@Z -> ??3@YAXPAX@Z -> ??4SPWSZ@@QAEPAGPAG@Z proto: (public: unsigned short * __thiscall SPWSZ::operator=(unsigned short *)): -> ??7SPWSZ@@QAEHXZ proto: (public: int __thiscall SPWSZ::operator!(void)): -> ??BSPWSZ@@QAEPAGXZ proto: (public: __thiscall SPWSZ::operator unsigned short *(void)): -> ??ISPWSZ@@QAEPAPAGXZ proto: (public: unsigned short * * __thiscall SPWSZ::operator&(void)): -> ?BlobToFile@Drm@@YAJPBEKPAX@Z proto: (long __cdecl Drm::BlobToFile(unsigned char const *,unsigned long,void *)): dynamic -> ?BlobToFile@Drm@@YAJPBEKPBG@Z proto: (long __cdecl Drm::BlobToFile(unsigned char const *,unsigned long,unsigned short const *)): dynamic ?BlobToFile@Drm@@YAJPBEKPAX@Z -> ?Byte2LittleEndian@@YAKPAE@Z proto: (unsigned long __cdecl Byte2LittleEndian(unsigned char *)): _memcpy -> ?CBC64Init@@YAXPAU_CBCKey@@PAUCBCState@@PAE@Z proto: (void __cdecl CBC64Init(struct _CBCKey *,struct CBCState *,unsigned char *)): -> ?CBC64WS4_asm@@YAIPAII0U_CBCKey@@@Z proto: (unsigned int __cdecl CBC64WS4_asm(unsigned int *,unsigned int,unsigned int *,struct _CBCKey)): -> ?CheckAppCert@@YAJPAVCDRMPKCrypto@@PAUAPPCERT@@@Z proto: (long __cdecl CheckAppCert(class CDRMPKCrypto *,struct APPCERT *)): ?DRMDebugMessage@@YAXPBDHJ@Z ?IsVersionOK@@YA_NPAE0@Z _memcpy ?Byte2LittleEndian@@YAKPAE@Z ?PKverify@CDRMPKCrypto@@QAEHPAUPUBKEY@@PAEK1@Z -> ?CheckCert@@YAJPAUCERTtag@@PAUPUBKEY@@_N@Z proto: (long __cdecl CheckCert(struct CERTtag *,struct PUBKEY *,bool)): ??0CDRMPKCrypto@@QAE@XZ ?PKinit@CDRMPKCrypto@@QAEJXZ _memcmp ??1CDRMPKCrypto@@QAE@XZ ?IsDateOK@@YA_NPAE@Z ?Byte2LittleEndian@@YAKPAE@Z ?PKverify@CDRMPKCrypto@@QAEHPAUPUBKEY@@PAEK1@Z -> ?DRMDebugMessage@@YAXPBDHJ@Z proto: (void __cdecl DRMDebugMessage(char const *,int,long)): -> ?DRMHr64SzToBlob@@YAJPBDPAPAEPAK@Z proto: (long __cdecl DRMHr64SzToBlob(char const *,unsigned char * *,unsigned long *)): _strlen ??2@YAPAXI@Z ?Decode4@@YAJQBDPAEH@Z ?DRMDebugMessage@@YAXPBDHJ@Z ?DecodeLast4@@YAJQBDPAEPAKH@Z ??3@YAXPAX@Z -> ?DRMHrBlobTo64Sz@@YAJPAEKPAPAD@Z proto: (long __cdecl DRMHrBlobTo64Sz(unsigned char *,unsigned long,char * *)): ??2@YAPAXI@Z ?Encode3@@YAJQAEQADH@Z ?Encode2@@YAJQAEQADH@Z ?Encode1@@YAJEQADH@Z -> ?Decode4@@YAJQBDPAEH@Z proto: (long __cdecl Decode4(char const * const,unsigned char *,int)): ?Decode@@YAEDH@Z -> ?Decode@@YAEDH@Z proto: (unsigned char __cdecl Decode(char,int)): -> ?DecodeLast4@@YAJQBDPAEPAKH@Z proto: (long __cdecl DecodeLast4(char const * const,unsigned char *,unsigned long *,int)): ?Decode@@YAEDH@Z -> ?Encode1@@YAJEQADH@Z proto: (long __cdecl Encode1(unsigned char,char * const,int)): ?Encode@@YADEH@Z -> ?Encode2@@YAJQAEQADH@Z proto: (long __cdecl Encode2(unsigned char * const,char * const,int)): ?Encode@@YADEH@Z -> ?Encode3@@YAJQAEQADH@Z proto: (long __cdecl Encode3(unsigned char * const,char * const,int)): ?Encode@@YADEH@Z -> ?Encode@@YADEH@Z proto: (char __cdecl Encode(unsigned char,int)): -> ?FileToBlob@Drm@@YAJPAXPAPAEPAK@Z proto: (long __cdecl Drm::FileToBlob(void *,unsigned char * *,unsigned long *)): dynamic ??2@YAPAXI@Z ??3@YAXPAX@Z -> ?FileToBlob@Drm@@YAJPBGPAPAEPAK@Z proto: (long __cdecl Drm::FileToBlob(unsigned short const *,unsigned char * *,unsigned long *)): dynamic ?FileToBlob@Drm@@YAJPAXPAPAEPAK@Z ??3@YAXPAX@Z -> ?Free@SPWSZ@@QAEXXZ proto: (public: void __thiscall SPWSZ::Free(void)): ??3@YAXPAX@Z -> ?FreeAssoc@MapWSzToPtr@@IAEXPAUCAssoc@1@@Z proto: (protected: void __thiscall MapWSzToPtr::FreeAssoc(struct MapWSzToPtr::CAssoc *)): ?Free@SPWSZ@@QAEXXZ ?RemoveAll@MapWSzToPtr@@QAEXXZ -> ?GetAssocAt@MapWSzToPtr@@IBEPAUCAssoc@1@PBGAAI@Z proto: (protected: struct MapWSzToPtr::CAssoc * __thiscall MapWSzToPtr::GetAssocAt(unsigned short const *,unsigned int &)const ): ?HashKey@MapWSzToPtr@@QBEIPBG@Z ??BSPWSZ@@QAEPAGXZ _wcscmp -> ?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 -> ?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 -> ?HashKey@MapWSzToPtr@@QBEIPBG@Z proto: (public: unsigned int __thiscall MapWSzToPtr::HashKey(unsigned short const *)const ): -> ?HrAppend@@YAJPAPAGPBG@Z proto: (long __cdecl HrAppend(unsigned short * *,unsigned short const *)): ??0SPWSZ@@QAE@XZ _wcslen ??2@YAPAXI@Z ??4SPWSZ@@QAEPAGPAG@Z ??7SPWSZ@@QAEHXZ ?DRMDebugMessage@@YAXPBDHJ@Z ??BSPWSZ@@QAEPAGXZ _swprintf dynamic ??1SPWSZ@@QAE@XZ -> ?HrAppendN@@YAJPAPAGPBGH@Z proto: (long __cdecl HrAppendN(unsigned short * *,unsigned short const *,int)): ??0SPWSZ@@QAE@XZ _wcslen ??2@YAPAXI@Z ??4SPWSZ@@QAEPAGPAG@Z ??7SPWSZ@@QAEHXZ ?DRMDebugMessage@@YAXPBDHJ@Z ??BSPWSZ@@QAEPAGXZ _wcscpy _wcsncat dynamic ??1SPWSZ@@QAE@XZ -> ?HrSendHttp@@YAJPBDPADPAPAD1H@Z proto: (long __cdecl HrSendHttp(char const *,char *,char * *,char *,int)): __chkstk _LoadLibraryW ?DRMDebugMessage@@YAXPBDHJ@Z _malloc dynamic _strlen __snprintf __strnicmp _atoi ?HttpSendRequestAuthA@@YAJPAXPBDK0K@Z _realloc _memcpy _free ?MapInternetError@@YAJJ@Z -> ?HrSzToWSz@@YAJPBDIPAPAGI@Z proto: (long __cdecl HrSzToWSz(char const *,unsigned int,unsigned short * *,unsigned int)): ??2@YAPAXI@Z ?DRMDebugMessage@@YAXPBDHJ@Z dynamic -> ?HrWSzToSz@@YAJPBGPAPADI@Z proto: (long __cdecl HrWSzToSz(unsigned short const *,char * *,unsigned int)): ?DRMDebugMessage@@YAXPBDHJ@Z dynamic ??2@YAPAXI@Z -> ?HttpSendRequestAuthA@@YAJPAXPBDK0K@Z proto: (long __cdecl HttpSendRequestAuthA(void *,char const *,unsigned long,void *,unsigned long)): dynamic _LoadLibraryW ?MapInternetError@@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 -> ?InitHashTable@MapWSzToPtr@@QAEXIH@Z proto: (public: void __thiscall MapWSzToPtr::InitHashTable(unsigned int,int)): ??3@YAXPAX@Z ??2@YAPAXI@Z _memset -> ?IsDateOK@@YA_NPAE@Z proto: (bool __cdecl IsDateOK(unsigned char *)): _GetSystemTime ?LicDateToSysDate@@YAXPAEPAU_SYSTEMTIME@@@Z -> ?IsSDKAppCert@@YA_NPAUAPPCERT@@@Z proto: (bool __cdecl IsSDKAppCert(struct APPCERT *)): _memcmp -> ?IsVersionOK@@YA_NPAE0@Z proto: (bool __cdecl IsVersionOK(unsigned char *,unsigned char *)): _memcmp -> ?LicDateToSysDate@@YAXPAEPAU_SYSTEMTIME@@@Z proto: (void __cdecl LicDateToSysDate(unsigned char *,struct _SYSTEMTIME *)): -> ?LockFailed@Drm@@YAHXZ proto: (int __cdecl Drm::LockFailed(void)): dynamic -> ?MapDRMError@@YAJJ@Z proto: (long __cdecl MapDRMError(long)): -> ?MapInternetError@@YAJJ@Z proto: (long __cdecl MapInternetError(long)): _LoadLibraryW dynamic -> ?NewAssoc@MapWSzToPtr@@IAEPAUCAssoc@1@XZ proto: (protected: struct MapWSzToPtr::CAssoc * __thiscall MapWSzToPtr::NewAssoc(void)): ??2@YAPAXI@Z ??0CAssoc@MapWSzToPtr@@QAE@XZ ??ISPWSZ@@QAEPAPAGXZ _memset -> ?PKdecrypt@CDRMPKCrypto@@QAEJPAUPRIVKEY@@PAE1@Z -> ?PKencrypt@CDRMPKCrypto@@QAEJPAUPUBKEY@@PAE1@Z -> ?PKinit@CDRMPKCrypto@@QAEJXZ -> ?PKverify@CDRMPKCrypto@@QAEHPAUPUBKEY@@PAEK1@Z -> ?ReleaseDrmDllModule@DrmHelper@@QAEXXZ proto: (public: void __thiscall DrmHelper::ReleaseDrmDllModule(void)): dynamic -> ?RemoveAll@MapWSzToPtr@@QAEXXZ proto: (public: void __thiscall MapWSzToPtr::RemoveAll(void)): ?Free@SPWSZ@@QAEXXZ ??3@YAXPAX@Z -> ?WszDupWsz@@YAPAGPBG@Z proto: (unsigned short * __cdecl WszDupWsz(unsigned short const *)): _wcslen ??2@YAPAXI@Z _wcscpy -> ?ctoh@@YAXEQAE@Z proto: (void __cdecl ctoh(unsigned char,unsigned char * const)): -> ?egcd@@YAX_K0AA_J11@Z proto: (void __cdecl egcd(unsigned __int64,unsigned __int64,__int64 &,__int64 &,__int64 &)): __aullrem ?egcd@@YAX_K0AA_J11@Z __aulldiv __allmul -> ?htoc@@YAXPAEQAE@Z proto: (void __cdecl htoc(unsigned char *,unsigned char * const)): -> ?inv32@@YAII@Z proto: (unsigned int __cdecl inv32(unsigned int)): ?egcd@@YAX_K0AA_J11@Z -> _A_SHAFinal -> _A_SHAInit -> _A_SHAUpdate -> _AllignedDWORD -> _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 -> _CreateFileW_PC2CE -> _DeleteCriticalSection -> _GetSystemTime -> _InitializeCriticalSection -> _LoadLibraryW -> _LocalAllocTrace -> _LocalFree -> _NKDbgPrintfW -> _NewGenRandom -> __allmul -> __alloca_probe -> __allshl -> __aulldiv -> __aullrem -> __chkstk -> __snprintf -> __strlwr -> __strnicmp -> _atexit -> _atoi -> _free -> _malloc -> _memcmp -> _memcpy -> _memset -> _rc4 -> _rc4_key -> _realloc -> _strcpy -> _strlen -> _strstr -> _swprintf -> _swscanf -> _wcscmp -> _wcscpy -> _wcscspn -> _wcslen -> _wcsncat -> _wcsncpy -> dynamic