; 
; Exports of file NETUI1.dll
;
; Autogenerated by gen_exportdef
; Written by Kai Tietz, 2007
;
LIBRARY NETUI1.dll
EXPORTS
; public: __thiscall ADMIN_AUTHORITY::ADMIN_AUTHORITY(unsigned short const *,unsigned long,unsigned long,unsigned long,unsigned long,int)
??0ADMIN_AUTHORITY@@QAE@PBGKKKKH@Z
; public: __thiscall ALIAS_ENUM::ALIAS_ENUM(class SAM_DOMAIN &,unsigned int)
??0ALIAS_ENUM@@QAE@AAVSAM_DOMAIN@@I@Z
; public: __thiscall ALIAS_ENUM_ITER::ALIAS_ENUM_ITER(class ALIAS_ENUM &)
??0ALIAS_ENUM_ITER@@QAE@AAVALIAS_ENUM@@@Z
; public: __thiscall ALIAS_ENUM_OBJ::ALIAS_ENUM_OBJ(void)
??0ALIAS_ENUM_OBJ@@QAE@XZ
; public: __thiscall ALIAS_STR::ALIAS_STR(unsigned short const *)
??0ALIAS_STR@@QAE@PBG@Z
; public: __thiscall ALLOC_STR::ALLOC_STR(unsigned short *,unsigned int)
??0ALLOC_STR@@QAE@PAGI@Z
; public: __thiscall API_SESSION::API_SESSION(unsigned short const *,int)
??0API_SESSION@@QAE@PBGH@Z
; protected: __thiscall BASE::BASE(void)
??0BASE@@IAE@XZ
; public: __thiscall BROWSE_DOMAIN_ENUM::BROWSE_DOMAIN_ENUM(unsigned long,unsigned long *)
??0BROWSE_DOMAIN_ENUM@@QAE@KPAK@Z
; public: __thiscall BROWSE_DOMAIN_INFO::BROWSE_DOMAIN_INFO(unsigned short const *,unsigned long)
??0BROWSE_DOMAIN_INFO@@QAE@PBGK@Z
; public: __thiscall CHARDEVQ1_ENUM::CHARDEVQ1_ENUM(unsigned short const *,unsigned short const *)
??0CHARDEVQ1_ENUM@@QAE@PBG0@Z
; public: __thiscall CHARDEVQ1_ENUM_ITER::CHARDEVQ1_ENUM_ITER(class CHARDEVQ1_ENUM &)
??0CHARDEVQ1_ENUM_ITER@@QAE@AAVCHARDEVQ1_ENUM@@@Z
; public: __thiscall CHARDEVQ1_ENUM_OBJ::CHARDEVQ1_ENUM_OBJ(void)
??0CHARDEVQ1_ENUM_OBJ@@QAE@XZ
; protected: __thiscall CHARDEVQ_ENUM::CHARDEVQ_ENUM(unsigned short const *,unsigned short const *,unsigned int)
??0CHARDEVQ_ENUM@@IAE@PBG0I@Z
; protected: __thiscall COMPUTER::COMPUTER(unsigned short const *)
??0COMPUTER@@IAE@PBG@Z
; public: __thiscall CONN0_ENUM::CONN0_ENUM(unsigned short const *,unsigned short const *)
??0CONN0_ENUM@@QAE@PBG0@Z
; public: __thiscall CONN0_ENUM_ITER::CONN0_ENUM_ITER(class CONN0_ENUM &)
??0CONN0_ENUM_ITER@@QAE@AAVCONN0_ENUM@@@Z
; public: __thiscall CONN0_ENUM_OBJ::CONN0_ENUM_OBJ(void)
??0CONN0_ENUM_OBJ@@QAE@XZ
; public: __thiscall CONN1_ENUM::CONN1_ENUM(unsigned short const *,unsigned short const *)
??0CONN1_ENUM@@QAE@PBG0@Z
; public: __thiscall CONN1_ENUM_ITER::CONN1_ENUM_ITER(class CONN1_ENUM &)
??0CONN1_ENUM_ITER@@QAE@AAVCONN1_ENUM@@@Z
; public: __thiscall CONN1_ENUM_OBJ::CONN1_ENUM_OBJ(void)
??0CONN1_ENUM_OBJ@@QAE@XZ
; protected: __thiscall CONN_ENUM::CONN_ENUM(unsigned short const *,unsigned short const *,unsigned int)
??0CONN_ENUM@@IAE@PBG0I@Z
; public: __thiscall CONTEXT_ENUM::CONTEXT_ENUM(unsigned long)
??0CONTEXT_ENUM@@QAE@K@Z
; public: __thiscall CONTEXT_ENUM_ITER::CONTEXT_ENUM_ITER(class CONTEXT_ENUM &)
??0CONTEXT_ENUM_ITER@@QAE@AAVCONTEXT_ENUM@@@Z
; public: __thiscall CONTEXT_ENUM_OBJ::CONTEXT_ENUM_OBJ(void)
??0CONTEXT_ENUM_OBJ@@QAE@XZ
; public: __thiscall DEVICE2::DEVICE2(unsigned short const *)
??0DEVICE2@@QAE@PBG@Z
; public: __thiscall DEVICE::DEVICE(unsigned short const *)
??0DEVICE@@QAE@PBG@Z
; public: __thiscall DOMAIN0_ENUM::DOMAIN0_ENUM(unsigned short const *)
??0DOMAIN0_ENUM@@QAE@PBG@Z
; public: __thiscall DOMAIN0_ENUM_ITER::DOMAIN0_ENUM_ITER(class DOMAIN0_ENUM &)
??0DOMAIN0_ENUM_ITER@@QAE@AAVDOMAIN0_ENUM@@@Z
; public: __thiscall DOMAIN0_ENUM_OBJ::DOMAIN0_ENUM_OBJ(void)
??0DOMAIN0_ENUM_OBJ@@QAE@XZ
; public: __thiscall DOMAIN::DOMAIN(unsigned short const *,unsigned short const *,int)
??0DOMAIN@@QAE@PBG0H@Z
; public: __thiscall DOMAIN::DOMAIN(unsigned short const *,int)
??0DOMAIN@@QAE@PBGH@Z
; protected: __thiscall DOMAIN_ENUM::DOMAIN_ENUM(unsigned short const *,unsigned int)
??0DOMAIN_ENUM@@IAE@PBGI@Z
; public: __thiscall DOMAIN_WITH_DC_CACHE::DOMAIN_WITH_DC_CACHE(unsigned short const *,unsigned short const *,int)
??0DOMAIN_WITH_DC_CACHE@@QAE@PBG0H@Z
; public: __thiscall DOMAIN_WITH_DC_CACHE::DOMAIN_WITH_DC_CACHE(unsigned short const *,int)
??0DOMAIN_WITH_DC_CACHE@@QAE@PBGH@Z
; public: __thiscall ENUM_CALLER::ENUM_CALLER(void)
??0ENUM_CALLER@@QAE@XZ
; public: __thiscall ENUM_CALLER_LM_OBJ::ENUM_CALLER_LM_OBJ(class LOCATION const &)
??0ENUM_CALLER_LM_OBJ@@QAE@ABVLOCATION@@@Z
; protected: __thiscall ENUM_OBJ_BASE::ENUM_OBJ_BASE(void)
??0ENUM_OBJ_BASE@@IAE@XZ
; public: __thiscall FILE2_ENUM::FILE2_ENUM(unsigned short const *,unsigned short const *,unsigned short const *)
??0FILE2_ENUM@@QAE@PBG00@Z
; public: __thiscall FILE2_ENUM_ITER::FILE2_ENUM_ITER(class FILE2_ENUM &)
??0FILE2_ENUM_ITER@@QAE@AAVFILE2_ENUM@@@Z
; public: __thiscall FILE2_ENUM_OBJ::FILE2_ENUM_OBJ(void)
??0FILE2_ENUM_OBJ@@QAE@XZ
; public: __thiscall FILE3_ENUM::FILE3_ENUM(unsigned short const *,unsigned short const *,unsigned short const *)
??0FILE3_ENUM@@QAE@PBG00@Z
; public: __thiscall FILE3_ENUM_ITER::FILE3_ENUM_ITER(class FILE3_ENUM &)
??0FILE3_ENUM_ITER@@QAE@AAVFILE3_ENUM@@@Z
; public: __thiscall FILE3_ENUM_OBJ::FILE3_ENUM_OBJ(void)
??0FILE3_ENUM_OBJ@@QAE@XZ
; protected: __thiscall FILE_ENUM::FILE_ENUM(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int)
??0FILE_ENUM@@IAE@PBG00I@Z
; public: __thiscall GROUP0_ENUM::GROUP0_ENUM(class LOCATION const &,unsigned short const *)
??0GROUP0_ENUM@@QAE@ABVLOCATION@@PBG@Z
; public: __thiscall GROUP0_ENUM::GROUP0_ENUM(unsigned short const *,unsigned short const *)
??0GROUP0_ENUM@@QAE@PBG0@Z
; public: __thiscall GROUP0_ENUM::GROUP0_ENUM(enum LOCATION_TYPE,unsigned short const *)
??0GROUP0_ENUM@@QAE@W4LOCATION_TYPE@@PBG@Z
; public: __thiscall GROUP0_ENUM_ITER::GROUP0_ENUM_ITER(class GROUP0_ENUM &)
??0GROUP0_ENUM_ITER@@QAE@AAVGROUP0_ENUM@@@Z
; public: __thiscall GROUP0_ENUM_OBJ::GROUP0_ENUM_OBJ(void)
??0GROUP0_ENUM_OBJ@@QAE@XZ
; public: __thiscall GROUP1_ENUM::GROUP1_ENUM(class LOCATION const &)
??0GROUP1_ENUM@@QAE@ABVLOCATION@@@Z
; public: __thiscall GROUP1_ENUM::GROUP1_ENUM(unsigned short const *)
??0GROUP1_ENUM@@QAE@PBG@Z
; public: __thiscall GROUP1_ENUM::GROUP1_ENUM(enum LOCATION_TYPE)
??0GROUP1_ENUM@@QAE@W4LOCATION_TYPE@@@Z
; public: __thiscall GROUP1_ENUM_ITER::GROUP1_ENUM_ITER(class GROUP1_ENUM &)
??0GROUP1_ENUM_ITER@@QAE@AAVGROUP1_ENUM@@@Z
; public: __thiscall GROUP1_ENUM_OBJ::GROUP1_ENUM_OBJ(void)
??0GROUP1_ENUM_OBJ@@QAE@XZ
; public: __thiscall GROUP::GROUP(unsigned short const *,unsigned short const *)
??0GROUP@@QAE@PBG0@Z
; public: __thiscall GROUP::GROUP(unsigned short const *,class LOCATION const &)
??0GROUP@@QAE@PBGABVLOCATION@@@Z
; public: __thiscall GROUP::GROUP(unsigned short const *,enum LOCATION_TYPE)
??0GROUP@@QAE@PBGW4LOCATION_TYPE@@@Z
; public: __thiscall GROUP_0::GROUP_0(unsigned short const *,unsigned short const *)
??0GROUP_0@@QAE@PBG0@Z
; public: __thiscall GROUP_0::GROUP_0(unsigned short const *,class LOCATION const &)
??0GROUP_0@@QAE@PBGABVLOCATION@@@Z
; public: __thiscall GROUP_0::GROUP_0(unsigned short const *,enum LOCATION_TYPE)
??0GROUP_0@@QAE@PBGW4LOCATION_TYPE@@@Z
; public: __thiscall GROUP_1::GROUP_1(unsigned short const *,unsigned short const *)
??0GROUP_1@@QAE@PBG0@Z
; public: __thiscall GROUP_1::GROUP_1(unsigned short const *,class LOCATION const &)
??0GROUP_1@@QAE@PBGABVLOCATION@@@Z
; public: __thiscall GROUP_1::GROUP_1(unsigned short const *,enum LOCATION_TYPE)
??0GROUP_1@@QAE@PBGW4LOCATION_TYPE@@@Z
; protected: __thiscall GROUP_ENUM::GROUP_ENUM(class LOCATION const &,unsigned int,unsigned short const *)
??0GROUP_ENUM@@IAE@ABVLOCATION@@IPBG@Z
; protected: __thiscall GROUP_ENUM::GROUP_ENUM(unsigned short const *,unsigned int,unsigned short const *)
??0GROUP_ENUM@@IAE@PBGI0@Z
; protected: __thiscall GROUP_ENUM::GROUP_ENUM(enum LOCATION_TYPE,unsigned int,unsigned short const *)
??0GROUP_ENUM@@IAE@W4LOCATION_TYPE@@IPBG@Z
; public: __thiscall GROUP_MEMB::GROUP_MEMB(class LOCATION const &,unsigned short const *)
??0GROUP_MEMB@@QAE@ABVLOCATION@@PBG@Z
; public: __thiscall ITER_DEVICE::ITER_DEVICE(enum LMO_DEVICE,enum LMO_DEV_USAGE)
??0ITER_DEVICE@@QAE@W4LMO_DEVICE@@W4LMO_DEV_USAGE@@@Z
; public: __thiscall ITER_SL_BROWSE_DOMAIN_INFO::ITER_SL_BROWSE_DOMAIN_INFO(class SLIST &)
??0ITER_SL_BROWSE_DOMAIN_INFO@@QAE@AAVSLIST@@@Z
; public: __thiscall ITER_SL_LM_RESUME_BUFFER::ITER_SL_LM_RESUME_BUFFER(class SLIST &)
??0ITER_SL_LM_RESUME_BUFFER@@QAE@AAVSLIST@@@Z
; public: __thiscall LM_CONFIG::LM_CONFIG(unsigned short const *,unsigned short const *,unsigned short const *)
??0LM_CONFIG@@QAE@PBG00@Z
; protected: __thiscall LM_ENUM::LM_ENUM(unsigned int)
??0LM_ENUM@@IAE@I@Z
; protected: __thiscall LM_ENUM_ITER::LM_ENUM_ITER(class LM_ENUM &)
??0LM_ENUM_ITER@@IAE@AAVLM_ENUM@@@Z
; protected: __thiscall LM_FILE::LM_FILE(unsigned short const *,unsigned long)
??0LM_FILE@@IAE@PBGK@Z
; public: __thiscall LM_FILE_2::LM_FILE_2(unsigned short const *,unsigned long)
??0LM_FILE_2@@QAE@PBGK@Z
; public: __thiscall LM_FILE_3::LM_FILE_3(unsigned short const *,unsigned long)
??0LM_FILE_3@@QAE@PBGK@Z
; public: __thiscall LM_MESSAGE::LM_MESSAGE(class LOCATION &)
??0LM_MESSAGE@@QAE@AAVLOCATION@@@Z
; public: __thiscall LM_MESSAGE::LM_MESSAGE(unsigned short const *)
??0LM_MESSAGE@@QAE@PBG@Z
; public: __thiscall LM_MESSAGE::LM_MESSAGE(enum LOCATION_TYPE)
??0LM_MESSAGE@@QAE@W4LOCATION_TYPE@@@Z
; public: __thiscall LM_OBJ::LM_OBJ(void)
??0LM_OBJ@@QAE@XZ
; protected: __thiscall LM_OBJ_BASE::LM_OBJ_BASE(int)
??0LM_OBJ_BASE@@IAE@H@Z
; public: __thiscall LM_RESUME_BUFFER::LM_RESUME_BUFFER(class LM_RESUME_ENUM *,unsigned int,unsigned char *)
??0LM_RESUME_BUFFER@@QAE@PAVLM_RESUME_ENUM@@IPAE@Z
; protected: __thiscall LM_RESUME_ENUM::LM_RESUME_ENUM(unsigned int,int)
??0LM_RESUME_ENUM@@IAE@IH@Z
; protected: __thiscall LM_RESUME_ENUM_ITER::LM_RESUME_ENUM_ITER(class LM_RESUME_ENUM &)
??0LM_RESUME_ENUM_ITER@@IAE@AAVLM_RESUME_ENUM@@@Z
; public: __thiscall LM_SERVICE::LM_SERVICE(unsigned short const *,unsigned short const *)
??0LM_SERVICE@@QAE@PBG0@Z
; protected: __thiscall LM_SESSION::LM_SESSION(unsigned short const *,unsigned short const *)
??0LM_SESSION@@IAE@PBG0@Z
; protected: __thiscall LM_SESSION::LM_SESSION(unsigned short const *,class LOCATION const &)
??0LM_SESSION@@IAE@PBGABVLOCATION@@@Z
; protected: __thiscall LM_SESSION::LM_SESSION(unsigned short const *,enum LOCATION_TYPE)
??0LM_SESSION@@IAE@PBGW4LOCATION_TYPE@@@Z
; public: __thiscall LM_SESSION_0::LM_SESSION_0(unsigned short const *,unsigned short const *)
??0LM_SESSION_0@@QAE@PBG0@Z
; public: __thiscall LM_SESSION_0::LM_SESSION_0(unsigned short const *,class LOCATION const &)
??0LM_SESSION_0@@QAE@PBGABVLOCATION@@@Z
; public: __thiscall LM_SESSION_0::LM_SESSION_0(unsigned short const *,enum LOCATION_TYPE)
??0LM_SESSION_0@@QAE@PBGW4LOCATION_TYPE@@@Z
; public: __thiscall LM_SESSION_10::LM_SESSION_10(unsigned short const *,unsigned short const *)
??0LM_SESSION_10@@QAE@PBG0@Z
; public: __thiscall LM_SESSION_10::LM_SESSION_10(unsigned short const *,class LOCATION const &)
??0LM_SESSION_10@@QAE@PBGABVLOCATION@@@Z
; public: __thiscall LM_SESSION_10::LM_SESSION_10(unsigned short const *,enum LOCATION_TYPE)
??0LM_SESSION_10@@QAE@PBGW4LOCATION_TYPE@@@Z
; public: __thiscall LM_SESSION_1::LM_SESSION_1(unsigned short const *,unsigned short const *)
??0LM_SESSION_1@@QAE@PBG0@Z
; public: __thiscall LM_SESSION_1::LM_SESSION_1(unsigned short const *,class LOCATION const &)
??0LM_SESSION_1@@QAE@PBGABVLOCATION@@@Z
; public: __thiscall LM_SESSION_1::LM_SESSION_1(unsigned short const *,enum LOCATION_TYPE)
??0LM_SESSION_1@@QAE@PBGW4LOCATION_TYPE@@@Z
; public: __thiscall LM_SESSION_2::LM_SESSION_2(unsigned short const *,unsigned short const *)
??0LM_SESSION_2@@QAE@PBG0@Z
; public: __thiscall LM_SESSION_2::LM_SESSION_2(unsigned short const *,class LOCATION const &)
??0LM_SESSION_2@@QAE@PBGABVLOCATION@@@Z
; public: __thiscall LM_SESSION_2::LM_SESSION_2(unsigned short const *,enum LOCATION_TYPE)
??0LM_SESSION_2@@QAE@PBGW4LOCATION_TYPE@@@Z
; public: __thiscall LM_SRVRES::LM_SRVRES(void)
??0LM_SRVRES@@QAE@XZ
; public: __thiscall LOCAL_USER::LOCAL_USER(unsigned short const *,unsigned short const *)
??0LOCAL_USER@@QAE@PBG0@Z
; public: __thiscall LOCAL_USER::LOCAL_USER(enum LOCATION_TYPE)
??0LOCAL_USER@@QAE@W4LOCATION_TYPE@@@Z
; public: __thiscall LOCATION::LOCATION(class LOCATION const &)
??0LOCATION@@QAE@ABV0@@Z
; public: __thiscall LOCATION::LOCATION(unsigned short const *,int)
??0LOCATION@@QAE@PBGH@Z
; public: __thiscall LOCATION::LOCATION(enum LOCATION_TYPE,int)
??0LOCATION@@QAE@W4LOCATION_TYPE@@H@Z
; protected: __thiscall LOC_LM_ENUM::LOC_LM_ENUM(class LOCATION const &,unsigned int)
??0LOC_LM_ENUM@@IAE@ABVLOCATION@@I@Z
; protected: __thiscall LOC_LM_ENUM::LOC_LM_ENUM(unsigned short const *,unsigned int)
??0LOC_LM_ENUM@@IAE@PBGI@Z
; protected: __thiscall LOC_LM_ENUM::LOC_LM_ENUM(enum LOCATION_TYPE,unsigned int)
??0LOC_LM_ENUM@@IAE@W4LOCATION_TYPE@@I@Z
; public: __thiscall LOC_LM_OBJ::LOC_LM_OBJ(class LOCATION const &,int)
??0LOC_LM_OBJ@@QAE@ABVLOCATION@@H@Z
; public: __thiscall LOC_LM_OBJ::LOC_LM_OBJ(unsigned short const *,int)
??0LOC_LM_OBJ@@QAE@PBGH@Z
; public: __thiscall LOC_LM_OBJ::LOC_LM_OBJ(enum LOCATION_TYPE,int)
??0LOC_LM_OBJ@@QAE@W4LOCATION_TYPE@@H@Z
; protected: __thiscall LOC_LM_RESUME_ENUM::LOC_LM_RESUME_ENUM(class LOCATION const &,unsigned int,int)
??0LOC_LM_RESUME_ENUM@@IAE@ABVLOCATION@@IH@Z
; protected: __thiscall LOC_LM_RESUME_ENUM::LOC_LM_RESUME_ENUM(unsigned short const *,unsigned int,int)
??0LOC_LM_RESUME_ENUM@@IAE@PBGIH@Z
; protected: __thiscall LOC_LM_RESUME_ENUM::LOC_LM_RESUME_ENUM(enum LOCATION_TYPE,unsigned int,int)
??0LOC_LM_RESUME_ENUM@@IAE@W4LOCATION_TYPE@@IH@Z
; public: __thiscall LSA_ACCOUNT::LSA_ACCOUNT(class LSA_POLICY *,void *,unsigned long,unsigned short const *,void *)
??0LSA_ACCOUNT@@QAE@PAVLSA_POLICY@@PAXKPBG1@Z
; public: __thiscall LSA_ACCOUNTS_ENUM::LSA_ACCOUNTS_ENUM(class LSA_POLICY const *)
??0LSA_ACCOUNTS_ENUM@@QAE@PBVLSA_POLICY@@@Z
; public: __thiscall LSA_ACCOUNTS_ENUM_ITER::LSA_ACCOUNTS_ENUM_ITER(class LSA_ACCOUNTS_ENUM &)
??0LSA_ACCOUNTS_ENUM_ITER@@QAE@AAVLSA_ACCOUNTS_ENUM@@@Z
; public: __thiscall LSA_ACCOUNTS_ENUM_OBJ::LSA_ACCOUNTS_ENUM_OBJ(void)
??0LSA_ACCOUNTS_ENUM_OBJ@@QAE@XZ
; public: __thiscall LSA_ACCOUNT_PRIVILEGE_ENUM_ITER::LSA_ACCOUNT_PRIVILEGE_ENUM_ITER(class OS_PRIVILEGE_SET *)
??0LSA_ACCOUNT_PRIVILEGE_ENUM_ITER@@QAE@PAVOS_PRIVILEGE_SET@@@Z
; public: __thiscall LSA_ACCT_DOM_INFO_MEM::LSA_ACCT_DOM_INFO_MEM(int)
??0LSA_ACCT_DOM_INFO_MEM@@QAE@H@Z
; public: __thiscall LSA_AUDIT_EVENT_INFO_MEM::LSA_AUDIT_EVENT_INFO_MEM(int)
??0LSA_AUDIT_EVENT_INFO_MEM@@QAE@H@Z
; public: __thiscall LSA_DOMAIN_INFO::LSA_DOMAIN_INFO(class NLS_STR const &,class LSA_DOMAIN_INFO const *,class LSA_DOMAIN_INFO const *)
??0LSA_DOMAIN_INFO@@QAE@ABVNLS_STR@@PBV1@1@Z
; protected: __thiscall LSA_ENUM::LSA_ENUM(class LSA_POLICY const *)
??0LSA_ENUM@@IAE@PBVLSA_POLICY@@@Z
; protected: __thiscall LSA_MEMORY::LSA_MEMORY(int)
??0LSA_MEMORY@@IAE@H@Z
; protected: __thiscall LSA_OBJECT::LSA_OBJECT(void)
??0LSA_OBJECT@@IAE@XZ
; public: __thiscall LSA_POLICY::LSA_POLICY(unsigned short const *,unsigned long)
??0LSA_POLICY@@QAE@PBGK@Z
; public: __thiscall LSA_PRIMARY_DOM_INFO_MEM::LSA_PRIMARY_DOM_INFO_MEM(int)
??0LSA_PRIMARY_DOM_INFO_MEM@@QAE@H@Z
; public: __thiscall LSA_PRIVILEGES_ENUM::LSA_PRIVILEGES_ENUM(class LSA_POLICY const *)
??0LSA_PRIVILEGES_ENUM@@QAE@PBVLSA_POLICY@@@Z
; public: __thiscall LSA_PRIVILEGES_ENUM_ITER::LSA_PRIVILEGES_ENUM_ITER(class LSA_PRIVILEGES_ENUM &)
??0LSA_PRIVILEGES_ENUM_ITER@@QAE@AAVLSA_PRIVILEGES_ENUM@@@Z
; public: __thiscall LSA_PRIVILEGES_ENUM_OBJ::LSA_PRIVILEGES_ENUM_OBJ(void)
??0LSA_PRIVILEGES_ENUM_OBJ@@QAE@XZ
; public: __thiscall LSA_REF_DOMAIN_MEM::LSA_REF_DOMAIN_MEM(int)
??0LSA_REF_DOMAIN_MEM@@QAE@H@Z
; public: __thiscall LSA_SECRET::LSA_SECRET(class NLS_STR const &)
??0LSA_SECRET@@QAE@ABVNLS_STR@@@Z
; public: __thiscall LSA_SERVER_ROLE_INFO_MEM::LSA_SERVER_ROLE_INFO_MEM(int,int)
??0LSA_SERVER_ROLE_INFO_MEM@@QAE@HH@Z
; public: __thiscall LSA_TRANSLATED_NAME_MEM::LSA_TRANSLATED_NAME_MEM(int)
??0LSA_TRANSLATED_NAME_MEM@@QAE@H@Z
; public: __thiscall LSA_TRANSLATED_SID_MEM::LSA_TRANSLATED_SID_MEM(int)
??0LSA_TRANSLATED_SID_MEM@@QAE@H@Z
; public: __thiscall LSA_TRUSTED_DC_LIST::LSA_TRUSTED_DC_LIST(class NLS_STR const &,unsigned short const *)
??0LSA_TRUSTED_DC_LIST@@QAE@ABVNLS_STR@@PBG@Z
; public: __thiscall LSA_TRUSTED_DOMAIN::LSA_TRUSTED_DOMAIN(class LSA_POLICY const &,struct _LSA_TRUST_INFORMATION const &,unsigned long)
??0LSA_TRUSTED_DOMAIN@@QAE@ABVLSA_POLICY@@ABU_LSA_TRUST_INFORMATION@@K@Z
; public: __thiscall LSA_TRUSTED_DOMAIN::LSA_TRUSTED_DOMAIN(class LSA_POLICY const &,class NLS_STR const &,void * const,unsigned long)
??0LSA_TRUSTED_DOMAIN@@QAE@ABVLSA_POLICY@@ABVNLS_STR@@QAXK@Z
; public: __thiscall LSA_TRUSTED_DOMAIN::LSA_TRUSTED_DOMAIN(class LSA_POLICY const &,void * const,unsigned long)
??0LSA_TRUSTED_DOMAIN@@QAE@ABVLSA_POLICY@@QAXK@Z
; public: __thiscall LSA_TRUST_INFO_MEM::LSA_TRUST_INFO_MEM(int)
??0LSA_TRUST_INFO_MEM@@QAE@H@Z
; public: __thiscall MEMBERSHIP_LM_OBJ::MEMBERSHIP_LM_OBJ(class LOCATION const &,unsigned int)
??0MEMBERSHIP_LM_OBJ@@QAE@ABVLOCATION@@I@Z
; protected: __thiscall NET_ACCESS::NET_ACCESS(unsigned short const *,unsigned short const *)
??0NET_ACCESS@@IAE@PBG0@Z
; public: __thiscall NET_ACCESS_1::NET_ACCESS_1(unsigned short const *,unsigned short const *)
??0NET_ACCESS_1@@QAE@PBG0@Z
; public: __thiscall NET_NAME::NET_NAME(unsigned short const *,enum NETNAME_TYPE)
??0NET_NAME@@QAE@PBGW4NETNAME_TYPE@@@Z
; public: __thiscall NEW_LM_OBJ::NEW_LM_OBJ(int)
??0NEW_LM_OBJ@@QAE@H@Z
; protected: __thiscall NT_ACCOUNT_ENUM::NT_ACCOUNT_ENUM(class SAM_DOMAIN const *,enum _DOMAIN_DISPLAY_INFORMATION,int)
??0NT_ACCOUNT_ENUM@@IAE@PBVSAM_DOMAIN@@W4_DOMAIN_DISPLAY_INFORMATION@@H@Z
; public: __thiscall NT_GROUP_ENUM::NT_GROUP_ENUM(class SAM_DOMAIN const *)
??0NT_GROUP_ENUM@@QAE@PBVSAM_DOMAIN@@@Z
; public: __thiscall NT_GROUP_ENUM_ITER::NT_GROUP_ENUM_ITER(class NT_GROUP_ENUM &)
??0NT_GROUP_ENUM_ITER@@QAE@AAVNT_GROUP_ENUM@@@Z
; public: __thiscall NT_GROUP_ENUM_OBJ::NT_GROUP_ENUM_OBJ(void)
??0NT_GROUP_ENUM_OBJ@@QAE@XZ
; public: __thiscall NT_MACHINE_ENUM::NT_MACHINE_ENUM(class SAM_DOMAIN const *)
??0NT_MACHINE_ENUM@@QAE@PBVSAM_DOMAIN@@@Z
; public: __thiscall NT_MACHINE_ENUM_ITER::NT_MACHINE_ENUM_ITER(class NT_MACHINE_ENUM &)
??0NT_MACHINE_ENUM_ITER@@QAE@AAVNT_MACHINE_ENUM@@@Z
; public: __thiscall NT_MACHINE_ENUM_OBJ::NT_MACHINE_ENUM_OBJ(void)
??0NT_MACHINE_ENUM_OBJ@@QAE@XZ
; protected: __thiscall NT_MEMORY::NT_MEMORY(void)
??0NT_MEMORY@@IAE@XZ
; public: __thiscall NT_USER_ENUM::NT_USER_ENUM(class SAM_DOMAIN const *)
??0NT_USER_ENUM@@QAE@PBVSAM_DOMAIN@@@Z
; public: __thiscall NT_USER_ENUM_ITER::NT_USER_ENUM_ITER(class NT_USER_ENUM &)
??0NT_USER_ENUM_ITER@@QAE@AAVNT_USER_ENUM@@@Z
; public: __thiscall NT_USER_ENUM_OBJ::NT_USER_ENUM_OBJ(void)
??0NT_USER_ENUM_OBJ@@QAE@XZ
; public: __thiscall OS_ACE::OS_ACE(void *)
??0OS_ACE@@QAE@PAX@Z
; public: __thiscall OS_ACL::OS_ACL(struct _ACL *,int,class OS_SECURITY_DESCRIPTOR *)
??0OS_ACL@@QAE@PAU_ACL@@HPAVOS_SECURITY_DESCRIPTOR@@@Z
; public: __thiscall OS_ACL_SUBJECT_ITER::OS_ACL_SUBJECT_ITER(class OS_ACL const *,struct _GENERIC_MAPPING *,struct _GENERIC_MAPPING *,int,int)
??0OS_ACL_SUBJECT_ITER@@QAE@PBVOS_ACL@@PAU_GENERIC_MAPPING@@1HH@Z
; public: __thiscall OS_DACL_SUBJECT_ITER::OS_DACL_SUBJECT_ITER(class OS_ACL *,struct _GENERIC_MAPPING *,struct _GENERIC_MAPPING *,int,int)
??0OS_DACL_SUBJECT_ITER@@QAE@PAVOS_ACL@@PAU_GENERIC_MAPPING@@1HH@Z
; public: __thiscall OS_LUID::OS_LUID(struct _LUID)
??0OS_LUID@@QAE@U_LUID@@@Z
; public: __thiscall OS_LUID::OS_LUID(void)
??0OS_LUID@@QAE@XZ
; public: __thiscall OS_LUID_AND_ATTRIBUTES::OS_LUID_AND_ATTRIBUTES(void)
??0OS_LUID_AND_ATTRIBUTES@@QAE@XZ
; protected: __thiscall OS_OBJECT_WITH_DATA::OS_OBJECT_WITH_DATA(unsigned int)
??0OS_OBJECT_WITH_DATA@@IAE@I@Z
; public: __thiscall OS_PRIVILEGE_SET::OS_PRIVILEGE_SET(struct _PRIVILEGE_SET *)
??0OS_PRIVILEGE_SET@@QAE@PAU_PRIVILEGE_SET@@@Z
; public: __thiscall OS_SACL_SUBJECT_ITER::OS_SACL_SUBJECT_ITER(class OS_ACL *,struct _GENERIC_MAPPING *,struct _GENERIC_MAPPING *,int,int)
??0OS_SACL_SUBJECT_ITER@@QAE@PAVOS_ACL@@PAU_GENERIC_MAPPING@@1HH@Z
; public: __thiscall OS_SECURITY_DESCRIPTOR::OS_SECURITY_DESCRIPTOR(void *,int)
??0OS_SECURITY_DESCRIPTOR@@QAE@PAXH@Z
; public: __thiscall OS_SECURITY_DESCRIPTOR_CONTROL::OS_SECURITY_DESCRIPTOR_CONTROL(unsigned short *)
??0OS_SECURITY_DESCRIPTOR_CONTROL@@QAE@PAG@Z
; public: __thiscall OS_SID::OS_SID(void *,int,class OS_SECURITY_DESCRIPTOR *)
??0OS_SID@@QAE@PAXHPAVOS_SECURITY_DESCRIPTOR@@@Z
; public: __thiscall OS_SID::OS_SID(void *,unsigned long,class OS_SECURITY_DESCRIPTOR *)
??0OS_SID@@QAE@PAXKPAVOS_SECURITY_DESCRIPTOR@@@Z
; public: __thiscall SAM_ALIAS::SAM_ALIAS(class SAM_DOMAIN const &,unsigned long,unsigned long)
??0SAM_ALIAS@@QAE@ABVSAM_DOMAIN@@KK@Z
; public: __thiscall SAM_ALIAS::SAM_ALIAS(class SAM_DOMAIN const &,unsigned short const *,unsigned long)
??0SAM_ALIAS@@QAE@ABVSAM_DOMAIN@@PBGK@Z
; public: __thiscall SAM_DOMAIN::SAM_DOMAIN(class SAM_SERVER const &,void *,unsigned long)
??0SAM_DOMAIN@@QAE@ABVSAM_SERVER@@PAXK@Z
; public: __thiscall SAM_GROUP::SAM_GROUP(class SAM_DOMAIN const &,unsigned long,unsigned long)
??0SAM_GROUP@@QAE@ABVSAM_DOMAIN@@KK@Z
; protected: __thiscall SAM_MEMORY::SAM_MEMORY(int)
??0SAM_MEMORY@@IAE@H@Z
; protected: __thiscall SAM_OBJECT::SAM_OBJECT(void)
??0SAM_OBJECT@@IAE@XZ
; public: __thiscall SAM_PSWD_DOM_INFO_MEM::SAM_PSWD_DOM_INFO_MEM(int)
??0SAM_PSWD_DOM_INFO_MEM@@QAE@H@Z
; public: __thiscall SAM_RID_ENUMERATION_MEM::SAM_RID_ENUMERATION_MEM(int)
??0SAM_RID_ENUMERATION_MEM@@QAE@H@Z
; public: __thiscall SAM_RID_MEM::SAM_RID_MEM(int)
??0SAM_RID_MEM@@QAE@H@Z
; public: __thiscall SAM_SERVER::SAM_SERVER(unsigned short const *,unsigned long)
??0SAM_SERVER@@QAE@PBGK@Z
; public: __thiscall SAM_SID_MEM::SAM_SID_MEM(int)
??0SAM_SID_MEM@@QAE@H@Z
; public: __thiscall SAM_SID_NAME_USE_MEM::SAM_SID_NAME_USE_MEM(int)
??0SAM_SID_NAME_USE_MEM@@QAE@H@Z
; public: __thiscall SAM_USER::SAM_USER(class SAM_DOMAIN const &,unsigned long,unsigned long)
??0SAM_USER@@QAE@ABVSAM_DOMAIN@@KK@Z
; public: __thiscall SAM_USER_ENUM::SAM_USER_ENUM(class SAM_DOMAIN const *,unsigned long,int)
??0SAM_USER_ENUM@@QAE@PBVSAM_DOMAIN@@KH@Z
; public: __thiscall SAM_USER_ENUM_ITER::SAM_USER_ENUM_ITER(class SAM_USER_ENUM &)
??0SAM_USER_ENUM_ITER@@QAE@AAVSAM_USER_ENUM@@@Z
; public: __thiscall SAM_USER_ENUM_OBJ::SAM_USER_ENUM_OBJ(void)
??0SAM_USER_ENUM_OBJ@@QAE@XZ
; public: __thiscall SC_MANAGER::SC_MANAGER(struct SC_HANDLE__ *)
??0SC_MANAGER@@QAE@PAUSC_HANDLE__@@@Z
; public: __thiscall SC_MANAGER::SC_MANAGER(unsigned short const *,unsigned int,enum SERVICE_DATABASE)
??0SC_MANAGER@@QAE@PBGIW4SERVICE_DATABASE@@@Z
; public: __thiscall SC_SERVICE::SC_SERVICE(class SC_MANAGER const &,unsigned short const *,unsigned short const *,unsigned int,unsigned int,unsigned int,unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned int)
??0SC_SERVICE@@QAE@ABVSC_MANAGER@@PBG1III11111I@Z
; public: __thiscall SC_SERVICE::SC_SERVICE(class SC_MANAGER const &,unsigned short const *,unsigned int)
??0SC_SERVICE@@QAE@ABVSC_MANAGER@@PBGI@Z
; public: __thiscall SERVER1_ENUM::SERVER1_ENUM(unsigned short const *,unsigned short const *,unsigned long)
??0SERVER1_ENUM@@QAE@PBG0K@Z
; public: __thiscall SERVER1_ENUM_ITER::SERVER1_ENUM_ITER(class SERVER1_ENUM &)
??0SERVER1_ENUM_ITER@@QAE@AAVSERVER1_ENUM@@@Z
; public: __thiscall SERVER1_ENUM_OBJ::SERVER1_ENUM_OBJ(void)
??0SERVER1_ENUM_OBJ@@QAE@XZ
; public: __thiscall SERVER_0::SERVER_0(unsigned short const *)
??0SERVER_0@@QAE@PBG@Z
; public: __thiscall SERVER_1::SERVER_1(unsigned short const *)
??0SERVER_1@@QAE@PBG@Z
; public: __thiscall SERVER_2::SERVER_2(unsigned short const *)
??0SERVER_2@@QAE@PBG@Z
; protected: __thiscall SERVER_ENUM::SERVER_ENUM(unsigned short const *,unsigned int,unsigned short const *,unsigned long)
??0SERVER_ENUM@@IAE@PBGI0K@Z
; public: __thiscall SERVICE_CONTROL::SERVICE_CONTROL(void)
??0SERVICE_CONTROL@@QAE@XZ
; public: __thiscall SERVICE_ENUM::SERVICE_ENUM(unsigned short const *,int,unsigned int,unsigned short const *)
??0SERVICE_ENUM@@QAE@PBGHI0@Z
; public: __thiscall SERVICE_ENUM_ITER::SERVICE_ENUM_ITER(class SERVICE_ENUM &)
??0SERVICE_ENUM_ITER@@QAE@AAVSERVICE_ENUM@@@Z
; public: __thiscall SERVICE_ENUM_OBJ::SERVICE_ENUM_OBJ(void)
??0SERVICE_ENUM_OBJ@@QAE@XZ
; public: __thiscall SESSION0_ENUM::SESSION0_ENUM(unsigned short const *)
??0SESSION0_ENUM@@QAE@PBG@Z
; public: __thiscall SESSION0_ENUM_ITER::SESSION0_ENUM_ITER(class SESSION0_ENUM &)
??0SESSION0_ENUM_ITER@@QAE@AAVSESSION0_ENUM@@@Z
; public: __thiscall SESSION0_ENUM_OBJ::SESSION0_ENUM_OBJ(void)
??0SESSION0_ENUM_OBJ@@QAE@XZ
; public: __thiscall SESSION1_ENUM::SESSION1_ENUM(unsigned short const *)
??0SESSION1_ENUM@@QAE@PBG@Z
; public: __thiscall SESSION1_ENUM_ITER::SESSION1_ENUM_ITER(class SESSION1_ENUM &)
??0SESSION1_ENUM_ITER@@QAE@AAVSESSION1_ENUM@@@Z
; public: __thiscall SESSION1_ENUM_OBJ::SESSION1_ENUM_OBJ(void)
??0SESSION1_ENUM_OBJ@@QAE@XZ
; protected: __thiscall SESSION_ENUM::SESSION_ENUM(unsigned short const *,unsigned int)
??0SESSION_ENUM@@IAE@PBGI@Z
; public: __thiscall SHARE1_ENUM::SHARE1_ENUM(unsigned short const *,int)
??0SHARE1_ENUM@@QAE@PBGH@Z
; public: __thiscall SHARE1_ENUM_ITER::SHARE1_ENUM_ITER(class SHARE1_ENUM &)
??0SHARE1_ENUM_ITER@@QAE@AAVSHARE1_ENUM@@@Z
; public: __thiscall SHARE1_ENUM_OBJ::SHARE1_ENUM_OBJ(void)
??0SHARE1_ENUM_OBJ@@QAE@XZ
; public: __thiscall SHARE2_ENUM::SHARE2_ENUM(unsigned short const *,int)
??0SHARE2_ENUM@@QAE@PBGH@Z
; public: __thiscall SHARE2_ENUM_ITER::SHARE2_ENUM_ITER(class SHARE2_ENUM &)
??0SHARE2_ENUM_ITER@@QAE@AAVSHARE2_ENUM@@@Z
; public: __thiscall SHARE2_ENUM_OBJ::SHARE2_ENUM_OBJ(void)
??0SHARE2_ENUM_OBJ@@QAE@XZ
; public: __thiscall SHARE::SHARE(unsigned short const *,unsigned short const *,int)
??0SHARE@@QAE@PBG0H@Z
; public: __thiscall SHARE_1::SHARE_1(unsigned short const *,unsigned short const *,int)
??0SHARE_1@@QAE@PBG0H@Z
; public: __thiscall SHARE_2::SHARE_2(unsigned short const *,unsigned short const *,int)
??0SHARE_2@@QAE@PBG0H@Z
; protected: __thiscall SHARE_ENUM::SHARE_ENUM(unsigned short const *,unsigned int,int)
??0SHARE_ENUM@@IAE@PBGIH@Z
; public: __thiscall SLIST_OF_ADMIN_AUTHORITY::SLIST_OF_ADMIN_AUTHORITY(int)
??0SLIST_OF_ADMIN_AUTHORITY@@QAE@H@Z
; public: __thiscall SLIST_OF_API_SESSION::SLIST_OF_API_SESSION(int)
??0SLIST_OF_API_SESSION@@QAE@H@Z
; public: __thiscall SLIST_OF_BROWSE_DOMAIN_INFO::SLIST_OF_BROWSE_DOMAIN_INFO(int)
??0SLIST_OF_BROWSE_DOMAIN_INFO@@QAE@H@Z
; public: __thiscall SLIST_OF_LM_RESUME_BUFFER::SLIST_OF_LM_RESUME_BUFFER(int)
??0SLIST_OF_LM_RESUME_BUFFER@@QAE@H@Z
; public: __thiscall TIME_OF_DAY::TIME_OF_DAY(class LOCATION &)
??0TIME_OF_DAY@@QAE@AAVLOCATION@@@Z
; public: __thiscall TIME_OF_DAY::TIME_OF_DAY(unsigned short const *)
??0TIME_OF_DAY@@QAE@PBG@Z
; public: __thiscall TIME_OF_DAY::TIME_OF_DAY(enum LOCATION_TYPE)
??0TIME_OF_DAY@@QAE@W4LOCATION_TYPE@@@Z
; public: __thiscall TRIPLE_SERVER_ENUM::TRIPLE_SERVER_ENUM(unsigned short const *,unsigned short const *,int,int,int,int)
??0TRIPLE_SERVER_ENUM@@QAE@PBG0HHHH@Z
; public: __thiscall TRIPLE_SERVER_ENUM_ITER::TRIPLE_SERVER_ENUM_ITER(class TRIPLE_SERVER_ENUM &)
??0TRIPLE_SERVER_ENUM_ITER@@QAE@AAVTRIPLE_SERVER_ENUM@@@Z
; public: __thiscall TRIPLE_SERVER_ENUM_OBJ::TRIPLE_SERVER_ENUM_OBJ(void)
??0TRIPLE_SERVER_ENUM_OBJ@@QAE@XZ
; public: __thiscall TRUSTED_DOMAIN_ENUM::TRUSTED_DOMAIN_ENUM(class LSA_POLICY const *,int)
??0TRUSTED_DOMAIN_ENUM@@QAE@PBVLSA_POLICY@@H@Z
; public: __thiscall TRUSTED_DOMAIN_ENUM_ITER::TRUSTED_DOMAIN_ENUM_ITER(class TRUSTED_DOMAIN_ENUM &)
??0TRUSTED_DOMAIN_ENUM_ITER@@QAE@AAVTRUSTED_DOMAIN_ENUM@@@Z
; public: __thiscall TRUSTED_DOMAIN_ENUM_OBJ::TRUSTED_DOMAIN_ENUM_OBJ(void)
??0TRUSTED_DOMAIN_ENUM_OBJ@@QAE@XZ
; public: __thiscall USE1_ENUM::USE1_ENUM(unsigned short const *)
??0USE1_ENUM@@QAE@PBG@Z
; public: __thiscall USE1_ENUM_ITER::USE1_ENUM_ITER(class USE1_ENUM &)
??0USE1_ENUM_ITER@@QAE@AAVUSE1_ENUM@@@Z
; public: __thiscall USE1_ENUM_OBJ::USE1_ENUM_OBJ(void)
??0USE1_ENUM_OBJ@@QAE@XZ
; public: __thiscall USER0_ENUM::USER0_ENUM(class LOCATION const &,unsigned short const *,int)
??0USER0_ENUM@@QAE@ABVLOCATION@@PBGH@Z
; public: __thiscall USER0_ENUM::USER0_ENUM(unsigned short const *,unsigned short const *,int)
??0USER0_ENUM@@QAE@PBG0H@Z
; public: __thiscall USER0_ENUM::USER0_ENUM(enum LOCATION_TYPE,unsigned short const *,int)
??0USER0_ENUM@@QAE@W4LOCATION_TYPE@@PBGH@Z
; public: __thiscall USER0_ENUM_ITER::USER0_ENUM_ITER(class USER0_ENUM &)
??0USER0_ENUM_ITER@@QAE@AAVUSER0_ENUM@@@Z
; public: __thiscall USER0_ENUM_OBJ::USER0_ENUM_OBJ(void)
??0USER0_ENUM_OBJ@@QAE@XZ
; public: __thiscall USER10_ENUM::USER10_ENUM(class LOCATION const &,int)
??0USER10_ENUM@@QAE@ABVLOCATION@@H@Z
; public: __thiscall USER10_ENUM::USER10_ENUM(unsigned short const *,int)
??0USER10_ENUM@@QAE@PBGH@Z
; public: __thiscall USER10_ENUM::USER10_ENUM(enum LOCATION_TYPE,int)
??0USER10_ENUM@@QAE@W4LOCATION_TYPE@@H@Z
; public: __thiscall USER10_ENUM_ITER::USER10_ENUM_ITER(class USER10_ENUM &)
??0USER10_ENUM_ITER@@QAE@AAVUSER10_ENUM@@@Z
; public: __thiscall USER10_ENUM_OBJ::USER10_ENUM_OBJ(void)
??0USER10_ENUM_OBJ@@QAE@XZ
; public: __thiscall USER1_ENUM::USER1_ENUM(class LOCATION const &,int)
??0USER1_ENUM@@QAE@ABVLOCATION@@H@Z
; public: __thiscall USER1_ENUM::USER1_ENUM(unsigned short const *,int)
??0USER1_ENUM@@QAE@PBGH@Z
; public: __thiscall USER1_ENUM::USER1_ENUM(enum LOCATION_TYPE,int)
??0USER1_ENUM@@QAE@W4LOCATION_TYPE@@H@Z
; public: __thiscall USER1_ENUM_ITER::USER1_ENUM_ITER(class USER1_ENUM &)
??0USER1_ENUM_ITER@@QAE@AAVUSER1_ENUM@@@Z
; public: __thiscall USER1_ENUM_OBJ::USER1_ENUM_OBJ(void)
??0USER1_ENUM_OBJ@@QAE@XZ
; public: __thiscall USER2_ENUM::USER2_ENUM(class LOCATION const &,int)
??0USER2_ENUM@@QAE@ABVLOCATION@@H@Z
; public: __thiscall USER2_ENUM::USER2_ENUM(unsigned short const *,int)
??0USER2_ENUM@@QAE@PBGH@Z
; public: __thiscall USER2_ENUM::USER2_ENUM(enum LOCATION_TYPE,int)
??0USER2_ENUM@@QAE@W4LOCATION_TYPE@@H@Z
; public: __thiscall USER2_ENUM_ITER::USER2_ENUM_ITER(class USER2_ENUM &)
??0USER2_ENUM_ITER@@QAE@AAVUSER2_ENUM@@@Z
; public: __thiscall USER2_ENUM_OBJ::USER2_ENUM_OBJ(void)
??0USER2_ENUM_OBJ@@QAE@XZ
; public: __thiscall USER::USER(unsigned short const *,unsigned short const *)
??0USER@@QAE@PBG0@Z
; public: __thiscall USER::USER(unsigned short const *,class LOCATION const &)
??0USER@@QAE@PBGABVLOCATION@@@Z
; public: __thiscall USER::USER(unsigned short const *,enum LOCATION_TYPE)
??0USER@@QAE@PBGW4LOCATION_TYPE@@@Z
; public: __thiscall USER_11::USER_11(unsigned short const *,unsigned short const *)
??0USER_11@@QAE@PBG0@Z
; public: __thiscall USER_11::USER_11(unsigned short const *,class LOCATION const &)
??0USER_11@@QAE@PBGABVLOCATION@@@Z
; public: __thiscall USER_11::USER_11(unsigned short const *,enum LOCATION_TYPE)
??0USER_11@@QAE@PBGW4LOCATION_TYPE@@@Z
; public: __thiscall USER_2::USER_2(unsigned short const *,unsigned short const *)
??0USER_2@@QAE@PBG0@Z
; public: __thiscall USER_2::USER_2(unsigned short const *,class LOCATION const &)
??0USER_2@@QAE@PBGABVLOCATION@@@Z
; public: __thiscall USER_2::USER_2(unsigned short const *,enum LOCATION_TYPE)
??0USER_2@@QAE@PBGW4LOCATION_TYPE@@@Z
; public: __thiscall USER_3::USER_3(unsigned short const *,unsigned short const *)
??0USER_3@@QAE@PBG0@Z
; public: __thiscall USER_3::USER_3(unsigned short const *,class LOCATION const &)
??0USER_3@@QAE@PBGABVLOCATION@@@Z
; public: __thiscall USER_3::USER_3(unsigned short const *,enum LOCATION_TYPE)
??0USER_3@@QAE@PBGW4LOCATION_TYPE@@@Z
; protected: __thiscall USER_ENUM::USER_ENUM(class LOCATION const &,unsigned int,unsigned short const *,int)
??0USER_ENUM@@IAE@ABVLOCATION@@IPBGH@Z
; protected: __thiscall USER_ENUM::USER_ENUM(unsigned short const *,unsigned int,unsigned short const *,int)
??0USER_ENUM@@IAE@PBGI0H@Z
; protected: __thiscall USER_ENUM::USER_ENUM(enum LOCATION_TYPE,unsigned int,unsigned short const *,int)
??0USER_ENUM@@IAE@W4LOCATION_TYPE@@IPBGH@Z
; public: __thiscall USER_MEMB::USER_MEMB(class LOCATION const &,unsigned short const *)
??0USER_MEMB@@QAE@ABVLOCATION@@PBG@Z
; public: __thiscall USER_MODALS::USER_MODALS(unsigned short const *)
??0USER_MODALS@@QAE@PBG@Z
; public: __thiscall USER_MODALS_3::USER_MODALS_3(unsigned short const *)
??0USER_MODALS_3@@QAE@PBG@Z
; protected: __thiscall USE_ENUM::USE_ENUM(unsigned short const *,unsigned int)
??0USE_ENUM@@IAE@PBGI@Z
; public: __thiscall WKSTA_10::WKSTA_10(unsigned short const *)
??0WKSTA_10@@QAE@PBG@Z
; public: __thiscall WKSTA_1::WKSTA_1(unsigned short const *)
??0WKSTA_1@@QAE@PBG@Z
; public: __thiscall WKSTA_USER_1::WKSTA_USER_1(void)
??0WKSTA_USER_1@@QAE@XZ
; public: __thiscall ADMIN_AUTHORITY::~ADMIN_AUTHORITY(void)
??1ADMIN_AUTHORITY@@QAE@XZ
; public: __thiscall ALIAS_ENUM::~ALIAS_ENUM(void)
??1ALIAS_ENUM@@QAE@XZ
; public: __thiscall ALIAS_ENUM_OBJ::~ALIAS_ENUM_OBJ(void)
??1ALIAS_ENUM_OBJ@@QAE@XZ
; public: __thiscall ALIAS_STR::~ALIAS_STR(void)
??1ALIAS_STR@@QAE@XZ
; public: __thiscall ALLOC_STR::~ALLOC_STR(void)
??1ALLOC_STR@@QAE@XZ
; public: __thiscall API_SESSION::~API_SESSION(void)
??1API_SESSION@@QAE@XZ
; public: __thiscall BROWSE_DOMAIN_ENUM::~BROWSE_DOMAIN_ENUM(void)
??1BROWSE_DOMAIN_ENUM@@QAE@XZ
; public: __thiscall BROWSE_DOMAIN_INFO::~BROWSE_DOMAIN_INFO(void)
??1BROWSE_DOMAIN_INFO@@QAE@XZ
; public: __thiscall CHARDEVQ1_ENUM_OBJ::~CHARDEVQ1_ENUM_OBJ(void)
??1CHARDEVQ1_ENUM_OBJ@@QAE@XZ
; public: __thiscall CHARDEVQ_ENUM::~CHARDEVQ_ENUM(void)
??1CHARDEVQ_ENUM@@QAE@XZ
; protected: __thiscall COMPUTER::~COMPUTER(void)
??1COMPUTER@@IAE@XZ
; public: __thiscall CONN0_ENUM_OBJ::~CONN0_ENUM_OBJ(void)
??1CONN0_ENUM_OBJ@@QAE@XZ
; public: __thiscall CONN1_ENUM_OBJ::~CONN1_ENUM_OBJ(void)
??1CONN1_ENUM_OBJ@@QAE@XZ
; public: __thiscall CONN_ENUM::~CONN_ENUM(void)
??1CONN_ENUM@@QAE@XZ
; public: __thiscall CONTEXT_ENUM_OBJ::~CONTEXT_ENUM_OBJ(void)
??1CONTEXT_ENUM_OBJ@@QAE@XZ
; public: __thiscall DEVICE::~DEVICE(void)
??1DEVICE@@QAE@XZ
; public: __thiscall DOMAIN0_ENUM::~DOMAIN0_ENUM(void)
??1DOMAIN0_ENUM@@QAE@XZ
; public: __thiscall DOMAIN0_ENUM_ITER::~DOMAIN0_ENUM_ITER(void)
??1DOMAIN0_ENUM_ITER@@QAE@XZ
; public: __thiscall DOMAIN0_ENUM_OBJ::~DOMAIN0_ENUM_OBJ(void)
??1DOMAIN0_ENUM_OBJ@@QAE@XZ
; public: __thiscall DOMAIN::~DOMAIN(void)
??1DOMAIN@@QAE@XZ
; public: __thiscall DOMAIN_ENUM::~DOMAIN_ENUM(void)
??1DOMAIN_ENUM@@QAE@XZ
; public: __thiscall DOMAIN_WITH_DC_CACHE::~DOMAIN_WITH_DC_CACHE(void)
??1DOMAIN_WITH_DC_CACHE@@QAE@XZ
; public: __thiscall ENUM_CALLER_LM_OBJ::~ENUM_CALLER_LM_OBJ(void)
??1ENUM_CALLER_LM_OBJ@@QAE@XZ
; protected: __thiscall ENUM_OBJ_BASE::~ENUM_OBJ_BASE(void)
??1ENUM_OBJ_BASE@@IAE@XZ
; public: __thiscall FILE2_ENUM_OBJ::~FILE2_ENUM_OBJ(void)
??1FILE2_ENUM_OBJ@@QAE@XZ
; public: __thiscall FILE3_ENUM::~FILE3_ENUM(void)
??1FILE3_ENUM@@QAE@XZ
; public: __thiscall FILE3_ENUM_ITER::~FILE3_ENUM_ITER(void)
??1FILE3_ENUM_ITER@@QAE@XZ
; public: __thiscall FILE3_ENUM_OBJ::~FILE3_ENUM_OBJ(void)
??1FILE3_ENUM_OBJ@@QAE@XZ
; protected: __thiscall FILE_ENUM::~FILE_ENUM(void)
??1FILE_ENUM@@IAE@XZ
; public: __thiscall GROUP0_ENUM::~GROUP0_ENUM(void)
??1GROUP0_ENUM@@QAE@XZ
; public: __thiscall GROUP0_ENUM_ITER::~GROUP0_ENUM_ITER(void)
??1GROUP0_ENUM_ITER@@QAE@XZ
; public: __thiscall GROUP0_ENUM_OBJ::~GROUP0_ENUM_OBJ(void)
??1GROUP0_ENUM_OBJ@@QAE@XZ
; public: __thiscall GROUP1_ENUM_OBJ::~GROUP1_ENUM_OBJ(void)
??1GROUP1_ENUM_OBJ@@QAE@XZ
; public: __thiscall GROUP::~GROUP(void)
??1GROUP@@QAE@XZ
; public: __thiscall GROUP_0::~GROUP_0(void)
??1GROUP_0@@QAE@XZ
; public: __thiscall GROUP_1::~GROUP_1(void)
??1GROUP_1@@QAE@XZ
; public: __thiscall GROUP_ENUM::~GROUP_ENUM(void)
??1GROUP_ENUM@@QAE@XZ
; public: __thiscall GROUP_MEMB::~GROUP_MEMB(void)
??1GROUP_MEMB@@QAE@XZ
; public: __thiscall ITER_DEVICE::~ITER_DEVICE(void)
??1ITER_DEVICE@@QAE@XZ
; public: __thiscall ITER_SL_BROWSE_DOMAIN_INFO::~ITER_SL_BROWSE_DOMAIN_INFO(void)
??1ITER_SL_BROWSE_DOMAIN_INFO@@QAE@XZ
; public: __thiscall ITER_SL_LM_RESUME_BUFFER::~ITER_SL_LM_RESUME_BUFFER(void)
??1ITER_SL_LM_RESUME_BUFFER@@QAE@XZ
; public: __thiscall LM_CONFIG::~LM_CONFIG(void)
??1LM_CONFIG@@QAE@XZ
; public: __thiscall LM_ENUM::~LM_ENUM(void)
??1LM_ENUM@@QAE@XZ
; protected: __thiscall LM_ENUM_ITER::~LM_ENUM_ITER(void)
??1LM_ENUM_ITER@@IAE@XZ
; protected: __thiscall LM_FILE::~LM_FILE(void)
??1LM_FILE@@IAE@XZ
; public: __thiscall LM_FILE_2::~LM_FILE_2(void)
??1LM_FILE_2@@QAE@XZ
; public: __thiscall LM_RESUME_BUFFER::~LM_RESUME_BUFFER(void)
??1LM_RESUME_BUFFER@@QAE@XZ
; public: __thiscall LM_RESUME_ENUM::~LM_RESUME_ENUM(void)
??1LM_RESUME_ENUM@@QAE@XZ
; protected: __thiscall LM_RESUME_ENUM_ITER::~LM_RESUME_ENUM_ITER(void)
??1LM_RESUME_ENUM_ITER@@IAE@XZ
; public: __thiscall LM_SERVICE::~LM_SERVICE(void)
??1LM_SERVICE@@QAE@XZ
; public: __thiscall LM_SESSION::~LM_SESSION(void)
??1LM_SESSION@@QAE@XZ
; public: __thiscall LM_SESSION_0::~LM_SESSION_0(void)
??1LM_SESSION_0@@QAE@XZ
; public: __thiscall LM_SESSION_10::~LM_SESSION_10(void)
??1LM_SESSION_10@@QAE@XZ
; public: __thiscall LM_SESSION_1::~LM_SESSION_1(void)
??1LM_SESSION_1@@QAE@XZ
; public: __thiscall LM_SRVRES::~LM_SRVRES(void)
??1LM_SRVRES@@QAE@XZ
; public: __thiscall LOCAL_USER::~LOCAL_USER(void)
??1LOCAL_USER@@QAE@XZ
; public: __thiscall LOCATION::~LOCATION(void)
??1LOCATION@@QAE@XZ
; public: __thiscall LOC_LM_ENUM::~LOC_LM_ENUM(void)
??1LOC_LM_ENUM@@QAE@XZ
; public: __thiscall LOC_LM_OBJ::~LOC_LM_OBJ(void)
??1LOC_LM_OBJ@@QAE@XZ
; public: __thiscall LOC_LM_RESUME_ENUM::~LOC_LM_RESUME_ENUM(void)
??1LOC_LM_RESUME_ENUM@@QAE@XZ
; public: __thiscall LSA_ACCOUNT::~LSA_ACCOUNT(void)
??1LSA_ACCOUNT@@QAE@XZ
; public: __thiscall LSA_ACCOUNTS_ENUM_OBJ::~LSA_ACCOUNTS_ENUM_OBJ(void)
??1LSA_ACCOUNTS_ENUM_OBJ@@QAE@XZ
; public: __thiscall LSA_ACCOUNT_PRIVILEGE_ENUM_ITER::~LSA_ACCOUNT_PRIVILEGE_ENUM_ITER(void)
??1LSA_ACCOUNT_PRIVILEGE_ENUM_ITER@@QAE@XZ
; public: __thiscall LSA_ACCT_DOM_INFO_MEM::~LSA_ACCT_DOM_INFO_MEM(void)
??1LSA_ACCT_DOM_INFO_MEM@@QAE@XZ
; public: __thiscall LSA_AUDIT_EVENT_INFO_MEM::~LSA_AUDIT_EVENT_INFO_MEM(void)
??1LSA_AUDIT_EVENT_INFO_MEM@@QAE@XZ
; public: __thiscall LSA_DOMAIN_INFO::~LSA_DOMAIN_INFO(void)
??1LSA_DOMAIN_INFO@@QAE@XZ
; public: __thiscall LSA_ENUM::~LSA_ENUM(void)
??1LSA_ENUM@@QAE@XZ
; protected: __thiscall LSA_MEMORY::~LSA_MEMORY(void)
??1LSA_MEMORY@@IAE@XZ
; protected: __thiscall LSA_OBJECT::~LSA_OBJECT(void)
??1LSA_OBJECT@@IAE@XZ
; public: __thiscall LSA_POLICY::~LSA_POLICY(void)
??1LSA_POLICY@@QAE@XZ
; public: __thiscall LSA_PRIMARY_DOM_INFO_MEM::~LSA_PRIMARY_DOM_INFO_MEM(void)
??1LSA_PRIMARY_DOM_INFO_MEM@@QAE@XZ
; public: __thiscall LSA_PRIVILEGES_ENUM_OBJ::~LSA_PRIVILEGES_ENUM_OBJ(void)
??1LSA_PRIVILEGES_ENUM_OBJ@@QAE@XZ
; public: __thiscall LSA_REF_DOMAIN_MEM::~LSA_REF_DOMAIN_MEM(void)
??1LSA_REF_DOMAIN_MEM@@QAE@XZ
; public: __thiscall LSA_SECRET::~LSA_SECRET(void)
??1LSA_SECRET@@QAE@XZ
; public: __thiscall LSA_SERVER_ROLE_INFO_MEM::~LSA_SERVER_ROLE_INFO_MEM(void)
??1LSA_SERVER_ROLE_INFO_MEM@@QAE@XZ
; public: __thiscall LSA_TRANSLATED_NAME_MEM::~LSA_TRANSLATED_NAME_MEM(void)
??1LSA_TRANSLATED_NAME_MEM@@QAE@XZ
; public: __thiscall LSA_TRANSLATED_SID_MEM::~LSA_TRANSLATED_SID_MEM(void)
??1LSA_TRANSLATED_SID_MEM@@QAE@XZ
; public: __thiscall LSA_TRUSTED_DC_LIST::~LSA_TRUSTED_DC_LIST(void)
??1LSA_TRUSTED_DC_LIST@@QAE@XZ
; public: __thiscall LSA_TRUSTED_DOMAIN::~LSA_TRUSTED_DOMAIN(void)
??1LSA_TRUSTED_DOMAIN@@QAE@XZ
; public: __thiscall LSA_TRUST_INFO_MEM::~LSA_TRUST_INFO_MEM(void)
??1LSA_TRUST_INFO_MEM@@QAE@XZ
; public: __thiscall MEMBERSHIP_LM_OBJ::~MEMBERSHIP_LM_OBJ(void)
??1MEMBERSHIP_LM_OBJ@@QAE@XZ
; protected: __thiscall NET_ACCESS::~NET_ACCESS(void)
??1NET_ACCESS@@IAE@XZ
; public: __thiscall NET_ACCESS_1::~NET_ACCESS_1(void)
??1NET_ACCESS_1@@QAE@XZ
; public: __thiscall NET_NAME::~NET_NAME(void)
??1NET_NAME@@QAE@XZ
; public: __thiscall NEW_LM_OBJ::~NEW_LM_OBJ(void)
??1NEW_LM_OBJ@@QAE@XZ
; protected: __thiscall NT_ACCOUNT_ENUM::~NT_ACCOUNT_ENUM(void)
??1NT_ACCOUNT_ENUM@@IAE@XZ
; public: __thiscall NT_GROUP_ENUM::~NT_GROUP_ENUM(void)
??1NT_GROUP_ENUM@@QAE@XZ
; public: __thiscall NT_GROUP_ENUM_OBJ::~NT_GROUP_ENUM_OBJ(void)
??1NT_GROUP_ENUM_OBJ@@QAE@XZ
; public: __thiscall NT_MACHINE_ENUM::~NT_MACHINE_ENUM(void)
??1NT_MACHINE_ENUM@@QAE@XZ
; public: __thiscall NT_MACHINE_ENUM_ITER::~NT_MACHINE_ENUM_ITER(void)
??1NT_MACHINE_ENUM_ITER@@QAE@XZ
; public: __thiscall NT_MACHINE_ENUM_OBJ::~NT_MACHINE_ENUM_OBJ(void)
??1NT_MACHINE_ENUM_OBJ@@QAE@XZ
; protected: __thiscall NT_MEMORY::~NT_MEMORY(void)
??1NT_MEMORY@@IAE@XZ
; public: __thiscall NT_USER_ENUM::~NT_USER_ENUM(void)
??1NT_USER_ENUM@@QAE@XZ
; public: __thiscall NT_USER_ENUM_OBJ::~NT_USER_ENUM_OBJ(void)
??1NT_USER_ENUM_OBJ@@QAE@XZ
; public: __thiscall OS_ACE::~OS_ACE(void)
??1OS_ACE@@QAE@XZ
; public: __thiscall OS_ACL::~OS_ACL(void)
??1OS_ACL@@QAE@XZ
; public: __thiscall OS_ACL_SUBJECT_ITER::~OS_ACL_SUBJECT_ITER(void)
??1OS_ACL_SUBJECT_ITER@@QAE@XZ
; public: __thiscall OS_DACL_SUBJECT_ITER::~OS_DACL_SUBJECT_ITER(void)
??1OS_DACL_SUBJECT_ITER@@QAE@XZ
; protected: __thiscall OS_OBJECT_WITH_DATA::~OS_OBJECT_WITH_DATA(void)
??1OS_OBJECT_WITH_DATA@@IAE@XZ
; public: __thiscall OS_PRIVILEGE_SET::~OS_PRIVILEGE_SET(void)
??1OS_PRIVILEGE_SET@@QAE@XZ
; public: __thiscall OS_SACL_SUBJECT_ITER::~OS_SACL_SUBJECT_ITER(void)
??1OS_SACL_SUBJECT_ITER@@QAE@XZ
; public: __thiscall OS_SECURITY_DESCRIPTOR::~OS_SECURITY_DESCRIPTOR(void)
??1OS_SECURITY_DESCRIPTOR@@QAE@XZ
; public: __thiscall OS_SID::~OS_SID(void)
??1OS_SID@@QAE@XZ
; public: __thiscall REG_VALUE_INFO_STRUCT::~REG_VALUE_INFO_STRUCT(void)
??1REG_VALUE_INFO_STRUCT@@QAE@XZ
; public: __thiscall SAM_ALIAS::~SAM_ALIAS(void)
??1SAM_ALIAS@@QAE@XZ
; public: __thiscall SAM_DOMAIN::~SAM_DOMAIN(void)
??1SAM_DOMAIN@@QAE@XZ
; public: __thiscall SAM_GROUP::~SAM_GROUP(void)
??1SAM_GROUP@@QAE@XZ
; public: __thiscall SAM_MEMORY::~SAM_MEMORY(void)
??1SAM_MEMORY@@QAE@XZ
; protected: __thiscall SAM_OBJECT::~SAM_OBJECT(void)
??1SAM_OBJECT@@IAE@XZ
; public: __thiscall SAM_PSWD_DOM_INFO_MEM::~SAM_PSWD_DOM_INFO_MEM(void)
??1SAM_PSWD_DOM_INFO_MEM@@QAE@XZ
; public: __thiscall SAM_RID_ENUMERATION_MEM::~SAM_RID_ENUMERATION_MEM(void)
??1SAM_RID_ENUMERATION_MEM@@QAE@XZ
; public: __thiscall SAM_RID_MEM::~SAM_RID_MEM(void)
??1SAM_RID_MEM@@QAE@XZ
; public: __thiscall SAM_SERVER::~SAM_SERVER(void)
??1SAM_SERVER@@QAE@XZ
; public: __thiscall SAM_SID_MEM::~SAM_SID_MEM(void)
??1SAM_SID_MEM@@QAE@XZ
; public: __thiscall SAM_SID_NAME_USE_MEM::~SAM_SID_NAME_USE_MEM(void)
??1SAM_SID_NAME_USE_MEM@@QAE@XZ
; public: __thiscall SAM_USER::~SAM_USER(void)
??1SAM_USER@@QAE@XZ
; public: __thiscall SAM_USER_ENUM::~SAM_USER_ENUM(void)
??1SAM_USER_ENUM@@QAE@XZ
; public: __thiscall SAM_USER_ENUM_ITER::~SAM_USER_ENUM_ITER(void)
??1SAM_USER_ENUM_ITER@@QAE@XZ
; public: __thiscall SAM_USER_ENUM_OBJ::~SAM_USER_ENUM_OBJ(void)
??1SAM_USER_ENUM_OBJ@@QAE@XZ
; public: __thiscall SC_MANAGER::~SC_MANAGER(void)
??1SC_MANAGER@@QAE@XZ
; public: __thiscall SC_SERVICE::~SC_SERVICE(void)
??1SC_SERVICE@@QAE@XZ
; public: __thiscall SERVER1_ENUM::~SERVER1_ENUM(void)
??1SERVER1_ENUM@@QAE@XZ
; public: __thiscall SERVER1_ENUM_ITER::~SERVER1_ENUM_ITER(void)
??1SERVER1_ENUM_ITER@@QAE@XZ
; public: __thiscall SERVER1_ENUM_OBJ::~SERVER1_ENUM_OBJ(void)
??1SERVER1_ENUM_OBJ@@QAE@XZ
; public: __thiscall SERVER_0::~SERVER_0(void)
??1SERVER_0@@QAE@XZ
; public: __thiscall SERVER_1::~SERVER_1(void)
??1SERVER_1@@QAE@XZ
; public: __thiscall SERVER_2::~SERVER_2(void)
??1SERVER_2@@QAE@XZ
; public: __thiscall SERVER_ENUM::~SERVER_ENUM(void)
??1SERVER_ENUM@@QAE@XZ
; public: __thiscall SERVICE_CONTROL::~SERVICE_CONTROL(void)
??1SERVICE_CONTROL@@QAE@XZ
; public: __thiscall SERVICE_ENUM::~SERVICE_ENUM(void)
??1SERVICE_ENUM@@QAE@XZ
; public: __thiscall SERVICE_ENUM_OBJ::~SERVICE_ENUM_OBJ(void)
??1SERVICE_ENUM_OBJ@@QAE@XZ
; public: __thiscall SESSION0_ENUM::~SESSION0_ENUM(void)
??1SESSION0_ENUM@@QAE@XZ
; public: __thiscall SESSION0_ENUM_ITER::~SESSION0_ENUM_ITER(void)
??1SESSION0_ENUM_ITER@@QAE@XZ
; public: __thiscall SESSION0_ENUM_OBJ::~SESSION0_ENUM_OBJ(void)
??1SESSION0_ENUM_OBJ@@QAE@XZ
; public: __thiscall SESSION1_ENUM_OBJ::~SESSION1_ENUM_OBJ(void)
??1SESSION1_ENUM_OBJ@@QAE@XZ
; public: __thiscall SESSION_ENUM::~SESSION_ENUM(void)
??1SESSION_ENUM@@QAE@XZ
; public: __thiscall SHARE1_ENUM_OBJ::~SHARE1_ENUM_OBJ(void)
??1SHARE1_ENUM_OBJ@@QAE@XZ
; public: __thiscall SHARE2_ENUM_OBJ::~SHARE2_ENUM_OBJ(void)
??1SHARE2_ENUM_OBJ@@QAE@XZ
; public: __thiscall SHARE::~SHARE(void)
??1SHARE@@QAE@XZ
; public: __thiscall SHARE_1::~SHARE_1(void)
??1SHARE_1@@QAE@XZ
; public: __thiscall SHARE_2::~SHARE_2(void)
??1SHARE_2@@QAE@XZ
; public: __thiscall SHARE_ENUM::~SHARE_ENUM(void)
??1SHARE_ENUM@@QAE@XZ
; public: __thiscall SLIST_OF_ADMIN_AUTHORITY::~SLIST_OF_ADMIN_AUTHORITY(void)
??1SLIST_OF_ADMIN_AUTHORITY@@QAE@XZ
; public: __thiscall SLIST_OF_API_SESSION::~SLIST_OF_API_SESSION(void)
??1SLIST_OF_API_SESSION@@QAE@XZ
; public: __thiscall SLIST_OF_BROWSE_DOMAIN_INFO::~SLIST_OF_BROWSE_DOMAIN_INFO(void)
??1SLIST_OF_BROWSE_DOMAIN_INFO@@QAE@XZ
; public: __thiscall SLIST_OF_LM_RESUME_BUFFER::~SLIST_OF_LM_RESUME_BUFFER(void)
??1SLIST_OF_LM_RESUME_BUFFER@@QAE@XZ
; public: __thiscall TIME_OF_DAY::~TIME_OF_DAY(void)
??1TIME_OF_DAY@@QAE@XZ
; public: __thiscall TRIPLE_SERVER_ENUM::~TRIPLE_SERVER_ENUM(void)
??1TRIPLE_SERVER_ENUM@@QAE@XZ
; public: __thiscall TRIPLE_SERVER_ENUM_OBJ::~TRIPLE_SERVER_ENUM_OBJ(void)
??1TRIPLE_SERVER_ENUM_OBJ@@QAE@XZ
; public: __thiscall TRUSTED_DOMAIN_ENUM::~TRUSTED_DOMAIN_ENUM(void)
??1TRUSTED_DOMAIN_ENUM@@QAE@XZ
; public: __thiscall TRUSTED_DOMAIN_ENUM_OBJ::~TRUSTED_DOMAIN_ENUM_OBJ(void)
??1TRUSTED_DOMAIN_ENUM_OBJ@@QAE@XZ
; public: __thiscall USE1_ENUM_OBJ::~USE1_ENUM_OBJ(void)
??1USE1_ENUM_OBJ@@QAE@XZ
; public: __thiscall USER0_ENUM::~USER0_ENUM(void)
??1USER0_ENUM@@QAE@XZ
; public: __thiscall USER0_ENUM_ITER::~USER0_ENUM_ITER(void)
??1USER0_ENUM_ITER@@QAE@XZ
; public: __thiscall USER0_ENUM_OBJ::~USER0_ENUM_OBJ(void)
??1USER0_ENUM_OBJ@@QAE@XZ
; public: __thiscall USER10_ENUM_OBJ::~USER10_ENUM_OBJ(void)
??1USER10_ENUM_OBJ@@QAE@XZ
; public: __thiscall USER1_ENUM_OBJ::~USER1_ENUM_OBJ(void)
??1USER1_ENUM_OBJ@@QAE@XZ
; public: __thiscall USER2_ENUM_OBJ::~USER2_ENUM_OBJ(void)
??1USER2_ENUM_OBJ@@QAE@XZ
; public: __thiscall USER::~USER(void)
??1USER@@QAE@XZ
; public: __thiscall USER_11::~USER_11(void)
??1USER_11@@QAE@XZ
; public: virtual __thiscall USER_2::~USER_2(void)
??1USER_2@@UAE@XZ
; public: virtual __thiscall USER_3::~USER_3(void)
??1USER_3@@UAE@XZ
; public: __thiscall USER_ENUM::~USER_ENUM(void)
??1USER_ENUM@@QAE@XZ
; public: __thiscall USER_MEMB::~USER_MEMB(void)
??1USER_MEMB@@QAE@XZ
; public: __thiscall USE_ENUM::~USE_ENUM(void)
??1USE_ENUM@@QAE@XZ
; public: __thiscall WKSTA_10::~WKSTA_10(void)
??1WKSTA_10@@QAE@XZ
; public: __thiscall WKSTA_1::~WKSTA_1(void)
??1WKSTA_1@@QAE@XZ
; public: __thiscall WKSTA_USER_1::~WKSTA_USER_1(void)
??1WKSTA_USER_1@@QAE@XZ
; public: class ALLOC_STR & __thiscall ALLOC_STR::operator=(class ALLOC_STR const &)
??4ALLOC_STR@@QAEAAV0@ABV0@@Z
; public: class ALLOC_STR & __thiscall ALLOC_STR::operator=(unsigned short const *)
??4ALLOC_STR@@QAEAAV0@PBG@Z
; public: int __thiscall BASE::operator!(void)const 
??7BASE@@QBEHXZ
; public: int __thiscall OS_LUID::operator==(class OS_LUID const &)const 
??8OS_LUID@@QBEHABV0@@Z
; public: int __thiscall OS_SID::operator==(class OS_SID const &)const 
??8OS_SID@@QBEHABV0@@Z
; public: struct _UNICODE_STRING const & __thiscall LSA_TRUSTED_DC_LIST::operator[](int)const 
??ALSA_TRUSTED_DC_LIST@@QBEABU_UNICODE_STRING@@H@Z
; public: unsigned short const * __thiscall NLS_STR::operator[](class ISTR const &)const 
??ANLS_STR@@QBEPBGABVISTR@@@Z
; public: __thiscall NLS_STR::operator unsigned short const *(void)const 
??BNLS_STR@@QBEPBGXZ
; public: __thiscall OS_ACL::operator struct _ACL *(void)const 
??BOS_ACL@@QBEPAU_ACL@@XZ
; public: __thiscall OS_SID::operator void *(void)const 
??BOS_SID@@QBEPAXXZ
; public: class CHARDEVQ1_ENUM_OBJ const * __thiscall CHARDEVQ1_ENUM_ITER::operator()(void)
??RCHARDEVQ1_ENUM_ITER@@QAEPBVCHARDEVQ1_ENUM_OBJ@@XZ
; public: class CONN0_ENUM_OBJ const * __thiscall CONN0_ENUM_ITER::operator()(void)
??RCONN0_ENUM_ITER@@QAEPBVCONN0_ENUM_OBJ@@XZ
; public: class CONN1_ENUM_OBJ const * __thiscall CONN1_ENUM_ITER::operator()(void)
??RCONN1_ENUM_ITER@@QAEPBVCONN1_ENUM_OBJ@@XZ
; public: class CONTEXT_ENUM_OBJ const * __thiscall CONTEXT_ENUM_ITER::operator()(void)
??RCONTEXT_ENUM_ITER@@QAEPBVCONTEXT_ENUM_OBJ@@XZ
; public: class DOMAIN0_ENUM_OBJ const * __thiscall DOMAIN0_ENUM_ITER::operator()(void)
??RDOMAIN0_ENUM_ITER@@QAEPBVDOMAIN0_ENUM_OBJ@@XZ
; public: class FILE3_ENUM_OBJ const * __thiscall FILE3_ENUM_ITER::operator()(long *,int)
??RFILE3_ENUM_ITER@@QAEPBVFILE3_ENUM_OBJ@@PAJH@Z
; public: class GROUP0_ENUM_OBJ const * __thiscall GROUP0_ENUM_ITER::operator()(void)
??RGROUP0_ENUM_ITER@@QAEPBVGROUP0_ENUM_OBJ@@XZ
; public: class GROUP1_ENUM_OBJ const * __thiscall GROUP1_ENUM_ITER::operator()(void)
??RGROUP1_ENUM_ITER@@QAEPBVGROUP1_ENUM_OBJ@@XZ
; public: class OS_LUID_AND_ATTRIBUTES const * __thiscall LSA_ACCOUNT_PRIVILEGE_ENUM_ITER::operator()(void)
??RLSA_ACCOUNT_PRIVILEGE_ENUM_ITER@@QAEPBVOS_LUID_AND_ATTRIBUTES@@XZ
; public: class NT_MACHINE_ENUM_OBJ const * __thiscall NT_MACHINE_ENUM_ITER::operator()(long *,int)
??RNT_MACHINE_ENUM_ITER@@QAEPBVNT_MACHINE_ENUM_OBJ@@PAJH@Z
; public: class SERVER1_ENUM_OBJ const * __thiscall SERVER1_ENUM_ITER::operator()(void)
??RSERVER1_ENUM_ITER@@QAEPBVSERVER1_ENUM_OBJ@@XZ
; public: class SERVICE_ENUM_OBJ const * __thiscall SERVICE_ENUM_ITER::operator()(void)
??RSERVICE_ENUM_ITER@@QAEPBVSERVICE_ENUM_OBJ@@XZ
; public: class SESSION0_ENUM_OBJ const * __thiscall SESSION0_ENUM_ITER::operator()(void)
??RSESSION0_ENUM_ITER@@QAEPBVSESSION0_ENUM_OBJ@@XZ
; public: class SESSION1_ENUM_OBJ const * __thiscall SESSION1_ENUM_ITER::operator()(void)
??RSESSION1_ENUM_ITER@@QAEPBVSESSION1_ENUM_OBJ@@XZ
; public: class SHARE1_ENUM_OBJ const * __thiscall SHARE1_ENUM_ITER::operator()(void)
??RSHARE1_ENUM_ITER@@QAEPBVSHARE1_ENUM_OBJ@@XZ
; public: class SHARE2_ENUM_OBJ const * __thiscall SHARE2_ENUM_ITER::operator()(void)
??RSHARE2_ENUM_ITER@@QAEPBVSHARE2_ENUM_OBJ@@XZ
; public: class TRIPLE_SERVER_ENUM_OBJ const * __thiscall TRIPLE_SERVER_ENUM_ITER::operator()(void)
??RTRIPLE_SERVER_ENUM_ITER@@QAEPBVTRIPLE_SERVER_ENUM_OBJ@@XZ
; public: class USE1_ENUM_OBJ const * __thiscall USE1_ENUM_ITER::operator()(void)
??RUSE1_ENUM_ITER@@QAEPBVUSE1_ENUM_OBJ@@XZ
; public: class USER0_ENUM_OBJ const * __thiscall USER0_ENUM_ITER::operator()(long *,int)
??RUSER0_ENUM_ITER@@QAEPBVUSER0_ENUM_OBJ@@PAJH@Z
; public: long __thiscall SLIST_OF_NLS_STR::Add(class NLS_STR const *)
?Add@SLIST_OF_NLS_STR@@QAEJPBVNLS_STR@@@Z
; public: long __thiscall OS_ACL::AddACE(unsigned long,class OS_ACE const &)
?AddACE@OS_ACL@@QAEJKABVOS_ACE@@@Z
; public: long __thiscall MEMBERSHIP_LM_OBJ::AddAssocName(unsigned short const *)
?AddAssocName@MEMBERSHIP_LM_OBJ@@QAEJPBG@Z
; private: static long __stdcall DOMAIN_WITH_DC_CACHE::AddDcCache(struct _DC_CACHE_ENTRY * *,unsigned short const *,unsigned short const *)
?AddDcCache@DOMAIN_WITH_DC_CACHE@@CGJPAPAU_DC_CACHE_ENTRY@@PBG1@Z
; private: void __thiscall BROWSE_DOMAIN_INFO::AddDomainSource(unsigned long)
?AddDomainSource@BROWSE_DOMAIN_INFO@@AAEXK@Z
; private: long __thiscall BROWSE_DOMAIN_ENUM::AddDomainToList(unsigned short const *,unsigned long,int)
?AddDomainToList@BROWSE_DOMAIN_ENUM@@AAEJPBGKH@Z
; public: long __thiscall SAM_ALIAS::AddMember(void *)
?AddMember@SAM_ALIAS@@QAEJPAX@Z
; public: long __thiscall SAM_GROUP::AddMember(unsigned long)
?AddMember@SAM_GROUP@@QAEJK@Z
; public: long __thiscall SAM_ALIAS::AddMembers(void * *,unsigned int)
?AddMembers@SAM_ALIAS@@QAEJPAPAXI@Z
; public: long __thiscall SAM_GROUP::AddMembers(unsigned long *,unsigned int)
?AddMembers@SAM_GROUP@@QAEJPAKI@Z
; public: long __thiscall OS_PRIVILEGE_SET::AddPrivilege(struct _LUID,unsigned long)
?AddPrivilege@OS_PRIVILEGE_SET@@QAEJU_LUID@@K@Z
; public: long __thiscall SLIST_OF_ADMIN_AUTHORITY::Append(class ADMIN_AUTHORITY const *)
?Append@SLIST_OF_ADMIN_AUTHORITY@@QAEJPBVADMIN_AUTHORITY@@@Z
; public: long __thiscall SLIST_OF_API_SESSION::Append(class API_SESSION const *)
?Append@SLIST_OF_API_SESSION@@QAEJPBVAPI_SESSION@@@Z
; public: long __thiscall SLIST_OF_BROWSE_DOMAIN_INFO::Append(class BROWSE_DOMAIN_INFO const *)
?Append@SLIST_OF_BROWSE_DOMAIN_INFO@@QAEJPBVBROWSE_DOMAIN_INFO@@@Z
; public: long __thiscall SLIST_OF_LM_RESUME_BUFFER::Append(class LM_RESUME_BUFFER const *)
?Append@SLIST_OF_LM_RESUME_BUFFER@@QAEJPBVLM_RESUME_BUFFER@@@Z
; public: long __thiscall SLIST_OF_NLS_STR::Append(class NLS_STR const *)
?Append@SLIST_OF_NLS_STR@@QAEJPBVNLS_STR@@@Z
; public: int __thiscall CHARDEVQ1_ENUM_ITER::Backup(void)
?Backup@CHARDEVQ1_ENUM_ITER@@QAEHXZ
; public: int __thiscall CONN0_ENUM_ITER::Backup(void)
?Backup@CONN0_ENUM_ITER@@QAEHXZ
; public: int __thiscall CONN1_ENUM_ITER::Backup(void)
?Backup@CONN1_ENUM_ITER@@QAEHXZ
; public: int __thiscall CONTEXT_ENUM_ITER::Backup(void)
?Backup@CONTEXT_ENUM_ITER@@QAEHXZ
; public: int __thiscall DOMAIN0_ENUM_ITER::Backup(void)
?Backup@DOMAIN0_ENUM_ITER@@QAEHXZ
; public: int __thiscall GROUP0_ENUM_ITER::Backup(void)
?Backup@GROUP0_ENUM_ITER@@QAEHXZ
; public: int __thiscall GROUP1_ENUM_ITER::Backup(void)
?Backup@GROUP1_ENUM_ITER@@QAEHXZ
; public: int __thiscall SERVER1_ENUM_ITER::Backup(void)
?Backup@SERVER1_ENUM_ITER@@QAEHXZ
; public: int __thiscall SERVICE_ENUM_ITER::Backup(void)
?Backup@SERVICE_ENUM_ITER@@QAEHXZ
; public: int __thiscall SESSION0_ENUM_ITER::Backup(void)
?Backup@SESSION0_ENUM_ITER@@QAEHXZ
; public: int __thiscall SESSION1_ENUM_ITER::Backup(void)
?Backup@SESSION1_ENUM_ITER@@QAEHXZ
; public: int __thiscall SHARE1_ENUM_ITER::Backup(void)
?Backup@SHARE1_ENUM_ITER@@QAEHXZ
; public: int __thiscall SHARE2_ENUM_ITER::Backup(void)
?Backup@SHARE2_ENUM_ITER@@QAEHXZ
; public: int __thiscall TRIPLE_SERVER_ENUM_ITER::Backup(void)
?Backup@TRIPLE_SERVER_ENUM_ITER@@QAEHXZ
; public: int __thiscall USE1_ENUM_ITER::Backup(void)
?Backup@USE1_ENUM_ITER@@QAEHXZ
; public: static long __stdcall NT_ACCOUNTS_UTILITY::BuildAndCopySysSid(class OS_SID *,struct _SID_IDENTIFIER_AUTHORITY *,unsigned char,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long,unsigned long)
?BuildAndCopySysSid@NT_ACCOUNTS_UTILITY@@SGJPAVOS_SID@@PAU_SID_IDENTIFIER_AUTHORITY@@EKKKKKKKK@Z
; public: static long __stdcall NT_ACCOUNTS_UTILITY::BuildQualifiedAccountName(class NLS_STR *,class NLS_STR const &,class NLS_STR const &,class NLS_STR const *,class NLS_STR const *,enum _SID_NAME_USE)
?BuildQualifiedAccountName@NT_ACCOUNTS_UTILITY@@SGJPAVNLS_STR@@ABV2@1PBV2@2W4_SID_NAME_USE@@@Z
; public: static long __stdcall NT_ACCOUNTS_UTILITY::BuildQualifiedAccountName(class NLS_STR *,class NLS_STR const &,void *,class NLS_STR const &,class NLS_STR const *,void *,enum _SID_NAME_USE)
?BuildQualifiedAccountName@NT_ACCOUNTS_UTILITY@@SGJPAVNLS_STR@@ABV2@PAX1PBV2@2W4_SID_NAME_USE@@@Z
; private: virtual long __thiscall ALIAS_ENUM::CallAPI(int,unsigned char * *,unsigned int *)
?CallAPI@ALIAS_ENUM@@EAEJHPAPAEPAI@Z
; private: virtual long __thiscall CHARDEVQ_ENUM::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@CHARDEVQ_ENUM@@EAEJPAPAEPAI@Z
; private: virtual long __thiscall CONN_ENUM::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@CONN_ENUM@@EAEJPAPAEPAI@Z
; protected: virtual long __thiscall CONTEXT_ENUM::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@CONTEXT_ENUM@@MAEJPAPAEPAI@Z
; protected: virtual long __thiscall DEVICE2::CallAPI(void)
?CallAPI@DEVICE2@@MAEJXZ
; protected: virtual long __thiscall DEVICE::CallAPI(void)
?CallAPI@DEVICE@@MAEJXZ
; private: virtual long __thiscall DOMAIN_ENUM::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@DOMAIN_ENUM@@EAEJPAPAEPAI@Z
; private: virtual long __thiscall FILE_ENUM::CallAPI(int,unsigned char * *,unsigned int *)
?CallAPI@FILE_ENUM@@EAEJHPAPAEPAI@Z
; private: virtual long __thiscall GROUP_ENUM::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@GROUP_ENUM@@EAEJPAPAEPAI@Z
; protected: virtual long __thiscall GROUP_MEMB::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@GROUP_MEMB@@MAEJPAPAEPAI@Z
; private: virtual long __thiscall LSA_ACCOUNTS_ENUM::CallAPI(int,unsigned char * *,unsigned int *)
?CallAPI@LSA_ACCOUNTS_ENUM@@EAEJHPAPAEPAI@Z
; protected: virtual long __thiscall LSA_PRIVILEGES_ENUM::CallAPI(int,unsigned char * *,unsigned int *)
?CallAPI@LSA_PRIVILEGES_ENUM@@MAEJHPAPAEPAI@Z
; private: virtual long __thiscall NT_ACCOUNT_ENUM::CallAPI(int,unsigned char * *,unsigned int *)
?CallAPI@NT_ACCOUNT_ENUM@@EAEJHPAPAEPAI@Z
; private: virtual long __thiscall SAM_USER_ENUM::CallAPI(int,unsigned char * *,unsigned int *)
?CallAPI@SAM_USER_ENUM@@EAEJHPAPAEPAI@Z
; private: virtual long __thiscall SERVER_ENUM::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@SERVER_ENUM@@EAEJPAPAEPAI@Z
; private: virtual long __thiscall SERVICE_ENUM::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@SERVICE_ENUM@@EAEJPAPAEPAI@Z
; private: virtual long __thiscall SESSION_ENUM::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@SESSION_ENUM@@EAEJPAPAEPAI@Z
; private: virtual long __thiscall SHARE_ENUM::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@SHARE_ENUM@@EAEJPAPAEPAI@Z
; private: virtual long __thiscall TRIPLE_SERVER_ENUM::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@TRIPLE_SERVER_ENUM@@EAEJPAPAEPAI@Z
; private: virtual long __thiscall TRUSTED_DOMAIN_ENUM::CallAPI(int,unsigned char * *,unsigned int *)
?CallAPI@TRUSTED_DOMAIN_ENUM@@EAEJHPAPAEPAI@Z
; private: virtual long __thiscall USER_ENUM::CallAPI(int,unsigned char * *,unsigned int *)
?CallAPI@USER_ENUM@@EAEJHPAPAEPAI@Z
; protected: virtual long __thiscall USER_MEMB::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@USER_MEMB@@MAEJPAPAEPAI@Z
; private: virtual long __thiscall USE_ENUM::CallAPI(unsigned char * *,unsigned int *)
?CallAPI@USE_ENUM@@EAEJPAPAEPAI@Z
; public: long __thiscall SC_SERVICE::ChangeConfig(unsigned int,unsigned int,unsigned int,unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *)
?ChangeConfig@SC_SERVICE@@QAEJIIIPBG00000@Z
; public: long __thiscall NEW_LM_OBJ::ChangeToNew(void)
?ChangeToNew@NEW_LM_OBJ@@QAEJXZ
; public: long __thiscall LOCATION::CheckIfNT(int *)
?CheckIfNT@LOCATION@@QAEJPAH@Z
; public: long __thiscall LOCATION::CheckIfNT(int *,enum LOCATION_NT_TYPE *)
?CheckIfNT@LOCATION@@QAEJPAHPAW4LOCATION_NT_TYPE@@@Z
; public: long __thiscall LSA_POLICY::CheckIfShutDownOnFull(int *)
?CheckIfShutDownOnFull@LSA_POLICY@@QAEJPAH@Z
; protected: void __thiscall LSA_POLICY::CleanupUnistrArray(struct _UNICODE_STRING *,unsigned long)
?CleanupUnistrArray@LSA_POLICY@@IAEXPAU_UNICODE_STRING@@K@Z
; public: void __thiscall OS_PRIVILEGE_SET::Clear(void)
?Clear@OS_PRIVILEGE_SET@@QAEXXZ
; public: void __thiscall SLIST_OF_ADMIN_AUTHORITY::Clear(void)
?Clear@SLIST_OF_ADMIN_AUTHORITY@@QAEXXZ
; public: void __thiscall SLIST_OF_API_SESSION::Clear(void)
?Clear@SLIST_OF_API_SESSION@@QAEXXZ
; public: void __thiscall SLIST_OF_BROWSE_DOMAIN_INFO::Clear(void)
?Clear@SLIST_OF_BROWSE_DOMAIN_INFO@@QAEXXZ
; public: void __thiscall SLIST_OF_LM_RESUME_BUFFER::Clear(void)
?Clear@SLIST_OF_LM_RESUME_BUFFER@@QAEXXZ
; protected: long __thiscall NEW_LM_OBJ::ClearBuffer(void)
?ClearBuffer@NEW_LM_OBJ@@IAEJXZ
; private: static long __stdcall DOMAIN_WITH_DC_CACHE::ClearDcCache(struct _DC_CACHE_ENTRY *)
?ClearDcCache@DOMAIN_WITH_DC_CACHE@@CGJPAU_DC_CACHE_ENTRY@@@Z
; public: long __thiscall NET_ACCESS_1::ClearPerms(void)
?ClearPerms@NET_ACCESS_1@@QAEJXZ
; public: long __thiscall GROUP_1::CloneFrom(class GROUP_1 const &)
?CloneFrom@GROUP_1@@QAEJABV1@@Z
; public: long __thiscall GROUP_MEMB::CloneFrom(class GROUP_MEMB const &)
?CloneFrom@GROUP_MEMB@@QAEJABV1@@Z
; public: long __thiscall SHARE_1::CloneFrom(class SHARE_1 const &)
?CloneFrom@SHARE_1@@QAEJABV1@@Z
; public: long __thiscall SHARE_2::CloneFrom(class SHARE_2 const &)
?CloneFrom@SHARE_2@@QAEJABV1@@Z
; public: long __thiscall USER_2::CloneFrom(class USER_2 const &)
?CloneFrom@USER_2@@QAEJABV1@@Z
; public: long __thiscall USER_3::CloneFrom(class USER_3 const &)
?CloneFrom@USER_3@@QAEJABV1@@Z
; public: long __thiscall USER_MEMB::CloneFrom(class USER_MEMB const &)
?CloneFrom@USER_MEMB@@QAEJABV1@@Z
; public: long __thiscall SERVICE_CONTROL::Close(void)
?Close@SERVICE_CONTROL@@QAEJXZ
; public: long __thiscall LM_FILE::CloseFile(void)
?CloseFile@LM_FILE@@QAEJXZ
; public: long __thiscall LSA_OBJECT::CloseHandle(int)
?CloseHandle@LSA_OBJECT@@QAEJH@Z
; public: long __thiscall SAM_OBJECT::CloseHandle(void)
?CloseHandle@SAM_OBJECT@@QAEJXZ
; private: void __thiscall TRIPLE_SERVER_ENUM::CombineIntoTriple(struct _SERVER_INFO_101 const *,struct _KNOWN_SERVER_INFO const *,struct _TRIPLE_SERVER_INFO *)
?CombineIntoTriple@TRIPLE_SERVER_ENUM@@AAEXPBU_SERVER_INFO_101@@PBU_KNOWN_SERVER_INFO@@PAU_TRIPLE_SERVER_INFO@@@Z
; public: long __thiscall OS_ACL_SUBJECT_ITER::Compare(int *,class OS_ACL_SUBJECT_ITER *)
?Compare@OS_ACL_SUBJECT_ITER@@QAEJPAHPAV1@@Z
; public: long __thiscall OS_SECURITY_DESCRIPTOR::Compare(class OS_SECURITY_DESCRIPTOR *,int *,int *,int *,int *,struct _GENERIC_MAPPING *,struct _GENERIC_MAPPING *,int,int)
?Compare@OS_SECURITY_DESCRIPTOR@@QAEJPAV1@PAH111PAU_GENERIC_MAPPING@@2HH@Z
; public: int __thiscall NET_ACCESS_1::CompareACL(class NET_ACCESS_1 *)
?CompareACL@NET_ACCESS_1@@QAEHPAV1@@Z
; private: static int __cdecl TRIPLE_SERVER_ENUM::CompareBrowserServers(void const *,void const *)
?CompareBrowserServers@TRIPLE_SERVER_ENUM@@CAHPBX0@Z
; public: virtual int __thiscall OS_DACL_SUBJECT_ITER::CompareCurrentSubject(class OS_ACL_SUBJECT_ITER *)
?CompareCurrentSubject@OS_DACL_SUBJECT_ITER@@UAEHPAVOS_ACL_SUBJECT_ITER@@@Z
; public: virtual int __thiscall OS_SACL_SUBJECT_ITER::CompareCurrentSubject(class OS_ACL_SUBJECT_ITER *)
?CompareCurrentSubject@OS_SACL_SUBJECT_ITER@@UAEHPAVOS_ACL_SUBJECT_ITER@@@Z
; private: static int __cdecl DOMAIN0_ENUM::CompareDomains0(void const *,void const *)
?CompareDomains0@DOMAIN0_ENUM@@CAHPBX0@Z
; private: static int __cdecl TRIPLE_SERVER_ENUM::CompareLmServers(void const *,void const *)
?CompareLmServers@TRIPLE_SERVER_ENUM@@CAHPBX0@Z
; private: static int __cdecl TRIPLE_SERVER_ENUM::CompareNtServers(void const *,void const *)
?CompareNtServers@TRIPLE_SERVER_ENUM@@CAHPBX0@Z
; public: long __thiscall DEVICE2::Connect(unsigned short const *,unsigned short const *,unsigned short const *,unsigned short const *,unsigned long)
?Connect@DEVICE2@@QAEJPBG000K@Z
; public: long __thiscall DEVICE::Connect(unsigned short const *,unsigned short const *)
?Connect@DEVICE@@QAEJPBG0@Z
; long __stdcall ConnectToNullSession(class NLS_STR const &)
?ConnectToNullSession@@YGJABVNLS_STR@@@Z
; public: long __thiscall LM_SERVICE::Continue(unsigned int,unsigned int)
?Continue@LM_SERVICE@@QAEJII@Z
; public: long __thiscall SC_SERVICE::Control(unsigned int,struct _SERVICE_STATUS *)
?Control@SC_SERVICE@@QAEJIPAU_SERVICE_STATUS@@@Z
; public: long __thiscall OS_ACL::Copy(class OS_ACL const &,int)
?Copy@OS_ACL@@QAEJABV1@H@Z
; public: long __thiscall OS_SECURITY_DESCRIPTOR::Copy(class OS_SECURITY_DESCRIPTOR const &)
?Copy@OS_SECURITY_DESCRIPTOR@@QAEJABV1@@Z
; public: long __thiscall OS_SID::Copy(class OS_SID const &)
?Copy@OS_SID@@QAEJABV1@@Z
; public: long __thiscall NET_ACCESS_1::CopyAccessPerms(class NET_ACCESS_1 const &)
?CopyAccessPerms@NET_ACCESS_1@@QAEJABV1@@Z
; private: void __thiscall SERVICE_ENUM::CountServices(unsigned char *,unsigned int *,unsigned int *)
?CountServices@SERVICE_ENUM@@AAEXPAEPAI1@Z
; public: static long __stdcall NT_ACCOUNTS_UTILITY::CrackQualifiedAccountName(class NLS_STR const &,class NLS_STR *,class NLS_STR *)
?CrackQualifiedAccountName@NT_ACCOUNTS_UTILITY@@SGJABVNLS_STR@@PAV2@1@Z
; public: long __thiscall LSA_SECRET::Create(class LSA_POLICY const &,unsigned long)
?Create@LSA_SECRET@@QAEJABVLSA_POLICY@@K@Z
; public: long __thiscall NEW_LM_OBJ::CreateNew(void)
?CreateNew@NEW_LM_OBJ@@QAEJXZ
; private: void __thiscall DOMAIN::CtAux(unsigned short const *,unsigned short const *)
?CtAux@DOMAIN@@AAEXPBG0@Z
; private: void __thiscall GROUP::CtAux(unsigned short const *)
?CtAux@GROUP@@AAEXPBG@Z
; private: void __thiscall GROUP_1::CtAux(void)
?CtAux@GROUP_1@@AAEXXZ
; private: void __thiscall LOC_LM_OBJ::CtAux(void)
?CtAux@LOC_LM_OBJ@@AAEXXZ
; private: void __thiscall USER::CtAux(unsigned short const *)
?CtAux@USER@@AAEXPBG@Z
; private: void __thiscall USER_11::CtAux(void)
?CtAux@USER_11@@AAEXXZ
; private: void __thiscall USER_2::CtAux(void)
?CtAux@USER_2@@AAEXXZ
; private: void __thiscall USER_3::CtAux(void)
?CtAux@USER_3@@AAEXXZ
; public: long __thiscall LSA_TRUSTED_DOMAIN::Delete(void)
?Delete@LSA_TRUSTED_DOMAIN@@QAEJXZ
; public: long __thiscall NET_ACCESS::Delete(void)
?Delete@NET_ACCESS@@QAEJXZ
; public: long __thiscall NEW_LM_OBJ::Delete(unsigned int)
?Delete@NEW_LM_OBJ@@QAEJI@Z
; public: long __thiscall SAM_ALIAS::Delete(void)
?Delete@SAM_ALIAS@@QAEJXZ
; public: long __thiscall SC_SERVICE::Delete(void)
?Delete@SC_SERVICE@@QAEJXZ
; public: long __thiscall OS_ACL::DeleteACE(unsigned long)
?DeleteACE@OS_ACL@@QAEJK@Z
; protected: long __thiscall LSA_POLICY::DeleteAllTrustedDomains(void)
?DeleteAllTrustedDomains@LSA_POLICY@@IAEJXZ
; public: long __thiscall MEMBERSHIP_LM_OBJ::DeleteAssocName(unsigned int)
?DeleteAssocName@MEMBERSHIP_LM_OBJ@@QAEJI@Z
; public: long __thiscall MEMBERSHIP_LM_OBJ::DeleteAssocName(unsigned short const *)
?DeleteAssocName@MEMBERSHIP_LM_OBJ@@QAEJPBG@Z
; public: long __thiscall LSA_ACCOUNT::DeletePrivilege(struct _LUID)
?DeletePrivilege@LSA_ACCOUNT@@QAEJU_LUID@@@Z
; private: void __thiscall LM_ENUM::DeregisterIter(void)
?DeregisterIter@LM_ENUM@@AAEXXZ
; private: void __thiscall LM_RESUME_ENUM::DeregisterIter(void)
?DeregisterIter@LM_RESUME_ENUM@@AAEXXZ
; private: long __thiscall BROWSE_DOMAIN_ENUM::DetermineIfDomainMember(int *)
?DetermineIfDomainMember@BROWSE_DOMAIN_ENUM@@AAEJPAH@Z
; public: long __thiscall DEVICE::Disconnect(unsigned int)
?Disconnect@DEVICE@@QAEJI@Z
; public: long __thiscall DEVICE::Disconnect(unsigned short const *,unsigned int)
?Disconnect@DEVICE@@QAEJPBGI@Z
; public: long __thiscall LSA_POLICY::DistrustDomain(void * const,class NLS_STR const &,int)
?DistrustDomain@LSA_POLICY@@QAEJQAXABVNLS_STR@@H@Z
; public: int __thiscall LM_RESUME_ENUM::DoesKeepBuffers(void)const 
?DoesKeepBuffers@LM_RESUME_ENUM@@QBEHXZ
; private: virtual unsigned char * __thiscall ENUM_CALLER_LM_OBJ::EC_QueryBufferPtr(void)const 
?EC_QueryBufferPtr@ENUM_CALLER_LM_OBJ@@EBEPAEXZ
; private: virtual unsigned char * __thiscall LM_ENUM::EC_QueryBufferPtr(void)const 
?EC_QueryBufferPtr@LM_ENUM@@EBEPAEXZ
; private: virtual unsigned int __thiscall ENUM_CALLER_LM_OBJ::EC_QueryBufferSize(void)const 
?EC_QueryBufferSize@ENUM_CALLER_LM_OBJ@@EBEIXZ
; private: virtual long __thiscall ENUM_CALLER_LM_OBJ::EC_ResizeBuffer(unsigned int)
?EC_ResizeBuffer@ENUM_CALLER_LM_OBJ@@EAEJI@Z
; private: virtual long __thiscall ENUM_CALLER_LM_OBJ::EC_SetBufferPtr(unsigned char *)
?EC_SetBufferPtr@ENUM_CALLER_LM_OBJ@@EAEJPAE@Z
; private: virtual long __thiscall LM_ENUM::EC_SetBufferPtr(unsigned char *)
?EC_SetBufferPtr@LM_ENUM@@EAEJPAE@Z
; private: static long __stdcall DOMAIN_WITH_DC_CACHE::EnterCriticalSection(void)
?EnterCriticalSection@DOMAIN_WITH_DC_CACHE@@CGJXZ
; unsigned long __stdcall EnumAllComms(void)
?EnumAllComms@@YGKXZ
; unsigned long __stdcall EnumAllDrives(void)
?EnumAllDrives@@YGKXZ
; unsigned long __stdcall EnumAllLPTs(void)
?EnumAllLPTs@@YGKXZ
; private: unsigned short const * __thiscall ITER_DEVICE::EnumComms(void)
?EnumComms@ITER_DEVICE@@AAEPBGXZ
; public: long __thiscall SC_SERVICE::EnumDependent(unsigned int,struct _ENUM_SERVICE_STATUSW * *,unsigned long *)
?EnumDependent@SC_SERVICE@@QAEJIPAPAU_ENUM_SERVICE_STATUSW@@PAK@Z
; private: unsigned short const * __thiscall ITER_DEVICE::EnumDrives(void)
?EnumDrives@ITER_DEVICE@@AAEPBGXZ
; private: unsigned short const * __thiscall ITER_DEVICE::EnumLPTs(void)
?EnumLPTs@ITER_DEVICE@@AAEPBGXZ
; private: long __thiscall SERVICE_ENUM::EnumLmServices(unsigned char * *,unsigned int *)
?EnumLmServices@SERVICE_ENUM@@AAEJPAPAEPAI@Z
; unsigned long __stdcall EnumLocalComms(void)
?EnumLocalComms@@YGKXZ
; unsigned long __stdcall EnumLocalDrives(void)
?EnumLocalDrives@@YGKXZ
; unsigned long __stdcall EnumLocalLPTs(void)
?EnumLocalLPTs@@YGKXZ
; unsigned long __stdcall EnumNetComms(void)
?EnumNetComms@@YGKXZ
; unsigned long __stdcall EnumNetDevices(int)
?EnumNetDevices@@YGKH@Z
; unsigned long __stdcall EnumNetDrives(void)
?EnumNetDrives@@YGKXZ
; unsigned long __stdcall EnumNetLPTs(void)
?EnumNetLPTs@@YGKXZ
; private: long __thiscall SERVICE_ENUM::EnumNtServices(unsigned char * *,unsigned int *)
?EnumNtServices@SERVICE_ENUM@@AAEJPAPAEPAI@Z
; public: long __thiscall SC_MANAGER::EnumServiceStatus(unsigned int,unsigned int,struct _ENUM_SERVICE_STATUSW * *,unsigned long *,unsigned short const *)
?EnumServiceStatus@SC_MANAGER@@QAEJIIPAPAU_ENUM_SERVICE_STATUSW@@PAKPBG@Z
; unsigned long __stdcall EnumUnavailComms(void)
?EnumUnavailComms@@YGKXZ
; unsigned long __stdcall EnumUnavailDevices(int)
?EnumUnavailDevices@@YGKH@Z
; unsigned long __stdcall EnumUnavailDrives(void)
?EnumUnavailDrives@@YGKXZ
; unsigned long __stdcall EnumUnavailLPTs(void)
?EnumUnavailLPTs@@YGKXZ
; public: long __thiscall SAM_DOMAIN::EnumerateAliases(class SAM_RID_ENUMERATION_MEM *,unsigned long *,unsigned long)const 
?EnumerateAliases@SAM_DOMAIN@@QBEJPAVSAM_RID_ENUMERATION_MEM@@PAKK@Z
; public: long __thiscall SAM_DOMAIN::EnumerateAliasesForUser(void *,class SAM_RID_MEM *)const 
?EnumerateAliasesForUser@SAM_DOMAIN@@QBEJPAXPAVSAM_RID_MEM@@@Z
; public: long __thiscall SAM_DOMAIN::EnumerateGroups(class SAM_RID_ENUMERATION_MEM *,unsigned long *,unsigned long)const 
?EnumerateGroups@SAM_DOMAIN@@QBEJPAVSAM_RID_ENUMERATION_MEM@@PAKK@Z
; public: long __thiscall LSA_POLICY::EnumerateTrustedDomains(class LSA_TRUST_INFO_MEM *,unsigned long *,unsigned long)
?EnumerateTrustedDomains@LSA_POLICY@@QAEJPAVLSA_TRUST_INFO_MEM@@PAKK@Z
; public: long __thiscall SAM_DOMAIN::EnumerateUsers(class SAM_RID_ENUMERATION_MEM *,unsigned long *,unsigned long,unsigned long)const 
?EnumerateUsers@SAM_DOMAIN@@QBEJPAVSAM_RID_ENUMERATION_MEM@@PAKKK@Z
; long __stdcall FillUnicodeString(struct _UNICODE_STRING *,class NLS_STR const &)
?FillUnicodeString@@YGJPAU_UNICODE_STRING@@ABVNLS_STR@@@Z
; private: struct _ACCESS_LIST * __thiscall NET_ACCESS_1::FindACE(unsigned short const *,enum PERMNAME_TYPE)const 
?FindACE@NET_ACCESS_1@@ABEPAU_ACCESS_LIST@@PBGW4PERMNAME_TYPE@@@Z
; public: long __thiscall OS_ACL::FindACE(class OS_SID const &,int *,class OS_ACE *,unsigned long *,unsigned long)const 
?FindACE@OS_ACL@@QBEJABVOS_SID@@PAHPAVOS_ACE@@PAKK@Z
; public: int __thiscall MEMBERSHIP_LM_OBJ::FindAssocName(unsigned short const *,unsigned int *)
?FindAssocName@MEMBERSHIP_LM_OBJ@@QAEHPBGPAI@Z
; private: static unsigned short const * __stdcall DOMAIN_WITH_DC_CACHE::FindDcCache(struct _DC_CACHE_ENTRY const *,unsigned short const *)
?FindDcCache@DOMAIN_WITH_DC_CACHE@@CGPBGPBU_DC_CACHE_ENTRY@@PBG@Z
; public: class BROWSE_DOMAIN_INFO const * __thiscall BROWSE_DOMAIN_ENUM::FindFirst(unsigned long)
?FindFirst@BROWSE_DOMAIN_ENUM@@QAEPBVBROWSE_DOMAIN_INFO@@K@Z
; public: class BROWSE_DOMAIN_INFO const * __thiscall BROWSE_DOMAIN_ENUM::FindNext(unsigned long)
?FindNext@BROWSE_DOMAIN_ENUM@@QAEPBVBROWSE_DOMAIN_INFO@@K@Z
; public: long __thiscall OS_ACL_SUBJECT_ITER::FindNextSubject(int *,class OS_SID *,class OS_ACE *)
?FindNextSubject@OS_ACL_SUBJECT_ITER@@QAEJPAHPAVOS_SID@@PAVOS_ACE@@@Z
; public: long __thiscall OS_PRIVILEGE_SET::FindPrivilege(struct _LUID)const 
?FindPrivilege@OS_PRIVILEGE_SET@@QBEJU_LUID@@@Z
; protected: void __thiscall NEW_LM_OBJ::FixupPointer(unsigned short * *,class NEW_LM_OBJ const *)
?FixupPointer@NEW_LM_OBJ@@IAEXPAPAGPBV1@@Z
; protected: virtual void __thiscall ALIAS_ENUM::FreeBuffer(unsigned char * *)
?FreeBuffer@ALIAS_ENUM@@MAEXPAPAE@Z
; protected: virtual void __thiscall FILE_ENUM::FreeBuffer(unsigned char * *)
?FreeBuffer@FILE_ENUM@@MAEXPAPAE@Z
; protected: virtual void __thiscall LOC_LM_RESUME_ENUM::FreeBuffer(unsigned char * *)
?FreeBuffer@LOC_LM_RESUME_ENUM@@MAEXPAPAE@Z
; protected: virtual void __thiscall LSA_ENUM::FreeBuffer(unsigned char * *)
?FreeBuffer@LSA_ENUM@@MAEXPAPAE@Z
; protected: virtual void __thiscall LSA_MEMORY::FreeBuffer(void)
?FreeBuffer@LSA_MEMORY@@MAEXXZ
; private: void __thiscall LSA_TRUSTED_DC_LIST::FreeBuffer(void)
?FreeBuffer@LSA_TRUSTED_DC_LIST@@AAEXXZ
; protected: virtual void __thiscall NT_ACCOUNT_ENUM::FreeBuffer(unsigned char * *)
?FreeBuffer@NT_ACCOUNT_ENUM@@MAEXPAPAE@Z
; protected: virtual void __thiscall SAM_MEMORY::FreeBuffer(void)
?FreeBuffer@SAM_MEMORY@@MAEXXZ
; protected: virtual void __thiscall SAM_USER_ENUM::FreeBuffer(unsigned char * *)
?FreeBuffer@SAM_USER_ENUM@@MAEXPAPAE@Z
; protected: virtual void __thiscall TRUSTED_DOMAIN_ENUM::FreeBuffer(unsigned char * *)
?FreeBuffer@TRUSTED_DOMAIN_ENUM@@MAEXPAPAE@Z
; void __stdcall FreeUnicodeString(struct _UNICODE_STRING *)
?FreeUnicodeString@@YGXPAU_UNICODE_STRING@@@Z
; public: long __thiscall LSA_POLICY::GetAccountDomain(class LSA_ACCT_DOM_INFO_MEM *)const 
?GetAccountDomain@LSA_POLICY@@QBEJPAVLSA_ACCT_DOM_INFO_MEM@@@Z
; public: static long __stdcall DOMAIN::GetAnyDC(unsigned short const *,unsigned short const *,class NLS_STR *)
?GetAnyDC@DOMAIN@@SGJPBG0PAVNLS_STR@@@Z
; public: static long __stdcall DOMAIN_WITH_DC_CACHE::GetAnyDC(unsigned short const *,unsigned short const *,class NLS_STR *)
?GetAnyDC@DOMAIN_WITH_DC_CACHE@@SGJPBG0PAVNLS_STR@@@Z
; protected: static long __stdcall DOMAIN::GetAnyDCWorker(unsigned short const *,unsigned short const *,class NLS_STR *,int)
?GetAnyDCWorker@DOMAIN@@KGJPBG0PAVNLS_STR@@H@Z
; protected: static long __stdcall DOMAIN_WITH_DC_CACHE::GetAnyDCWorker(unsigned short const *,unsigned short const *,class NLS_STR *,int)
?GetAnyDCWorker@DOMAIN_WITH_DC_CACHE@@KGJPBG0PAVNLS_STR@@H@Z
; public: static long __stdcall DOMAIN::GetAnyValidDC(unsigned short const *,unsigned short const *,class NLS_STR *)
?GetAnyValidDC@DOMAIN@@SGJPBG0PAVNLS_STR@@@Z
; public: static long __stdcall DOMAIN_WITH_DC_CACHE::GetAnyValidDC(unsigned short const *,unsigned short const *,class NLS_STR *)
?GetAnyValidDC@DOMAIN_WITH_DC_CACHE@@SGJPBG0PAVNLS_STR@@@Z
; public: long __thiscall LSA_POLICY::GetAuditEventInfo(class LSA_AUDIT_EVENT_INFO_MEM *)
?GetAuditEventInfo@LSA_POLICY@@QAEJPAVLSA_AUDIT_EVENT_INFO_MEM@@@Z
; public: long __thiscall ALIAS_ENUM_OBJ::GetComment(class SAM_DOMAIN const &,class NLS_STR *)
?GetComment@ALIAS_ENUM_OBJ@@QAEJABVSAM_DOMAIN@@PAVNLS_STR@@@Z
; public: long __thiscall SAM_ALIAS::GetComment(class NLS_STR *)
?GetComment@SAM_ALIAS@@QAEJPAVNLS_STR@@@Z
; public: long __thiscall SAM_GROUP::GetComment(class NLS_STR *)
?GetComment@SAM_GROUP@@QAEJPAVNLS_STR@@@Z
; private: long __thiscall NET_NAME::GetDeviceInfo(void)
?GetDeviceInfo@NET_NAME@@AAEJXZ
; public: virtual long __thiscall DEVICE::GetInfo(void)
?GetInfo@DEVICE@@UAEJXZ
; public: virtual long __thiscall DOMAIN::GetInfo(void)
?GetInfo@DOMAIN@@UAEJXZ
; public: virtual long __thiscall DOMAIN_WITH_DC_CACHE::GetInfo(void)
?GetInfo@DOMAIN_WITH_DC_CACHE@@UAEJXZ
; public: long __thiscall LM_ENUM::GetInfo(void)
?GetInfo@LM_ENUM@@QAEJXZ
; public: long __thiscall LM_RESUME_ENUM::GetInfo(int)
?GetInfo@LM_RESUME_ENUM@@QAEJH@Z
; public: long __thiscall NEW_LM_OBJ::GetInfo(void)
?GetInfo@NEW_LM_OBJ@@QAEJXZ
; public: virtual long __thiscall USER_MODALS::GetInfo(void)
?GetInfo@USER_MODALS@@UAEJXZ
; public: virtual long __thiscall USER_MODALS_3::GetInfo(void)
?GetInfo@USER_MODALS_3@@UAEJXZ
; private: long __thiscall LM_RESUME_ENUM::GetInfoMulti(void)
?GetInfoMulti@LM_RESUME_ENUM@@AAEJXZ
; private: long __thiscall LM_RESUME_ENUM::GetInfoSingle(int)
?GetInfoSingle@LM_RESUME_ENUM@@AAEJH@Z
; private: long __thiscall BROWSE_DOMAIN_ENUM::GetLanmanDomains(unsigned long)
?GetLanmanDomains@BROWSE_DOMAIN_ENUM@@AAEJK@Z
; private: long __thiscall BROWSE_DOMAIN_ENUM::GetLogonDomainDC(class NLS_STR *)
?GetLogonDomainDC@BROWSE_DOMAIN_ENUM@@AAEJPAVNLS_STR@@@Z
; public: long __thiscall SAM_ALIAS::GetMembers(class SAM_SID_MEM *)
?GetMembers@SAM_ALIAS@@QAEJPAVSAM_SID_MEM@@@Z
; public: long __thiscall SAM_GROUP::GetMembers(class SAM_RID_MEM *)
?GetMembers@SAM_GROUP@@QAEJPAVSAM_RID_MEM@@@Z
; public: long __thiscall SAM_DOMAIN::GetPasswordInfo(class SAM_PSWD_DOM_INFO_MEM *)const 
?GetPasswordInfo@SAM_DOMAIN@@QBEJPAVSAM_PSWD_DOM_INFO_MEM@@@Z
; public: long __thiscall LSA_POLICY::GetPrimaryDomain(class LSA_PRIMARY_DOM_INFO_MEM *)const 
?GetPrimaryDomain@LSA_POLICY@@QBEJPAVLSA_PRIMARY_DOM_INFO_MEM@@@Z
; public: static long __stdcall NT_ACCOUNTS_UTILITY::GetQualifiedAccountNames(class LSA_POLICY &,class SAM_DOMAIN const &,void * const *,unsigned long,int,class STRLIST *,unsigned long *,enum _SID_NAME_USE *,long *,unsigned short const *,class STRLIST *,class STRLIST *,class STRLIST *,class STRLIST *)
?GetQualifiedAccountNames@NT_ACCOUNTS_UTILITY@@SGJAAVLSA_POLICY@@ABVSAM_DOMAIN@@PBQAXKHPAVSTRLIST@@PAKPAW4_SID_NAME_USE@@PAJPBG3333@Z
; public: static long __stdcall NT_ACCOUNTS_UTILITY::GetQualifiedAccountNames(class LSA_POLICY &,void * const,void * const *,unsigned long,int,class STRLIST *,unsigned long *,enum _SID_NAME_USE *,long *,unsigned short const *,class STRLIST *,class STRLIST *,class STRLIST *,class STRLIST *)
?GetQualifiedAccountNames@NT_ACCOUNTS_UTILITY@@SGJAAVLSA_POLICY@@QAXPBQAXKHPAVSTRLIST@@PAKPAW4_SID_NAME_USE@@PAJPBG3333@Z
; public: static long __stdcall LM_SRVRES::GetResourceCount(unsigned short const *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *,unsigned long *)
?GetResourceCount@LM_SRVRES@@SGJPBGPAK11111@Z
; public: long __thiscall LSA_POLICY::GetServerRole(class LSA_SERVER_ROLE_INFO_MEM *)const 
?GetServerRole@LSA_POLICY@@QBEJPAVLSA_SERVER_ROLE_INFO_MEM@@@Z
; public: static long __stdcall LM_SRVRES::GetSessionsCount(unsigned short const *,unsigned long *)
?GetSessionsCount@LM_SRVRES@@SGJPBGPAK@Z
; private: long __thiscall BROWSE_DOMAIN_ENUM::GetTrustingDomains(void)
?GetTrustingDomains@BROWSE_DOMAIN_ENUM@@AAEJXZ
; long __stdcall GetW32ComputerName(class NLS_STR &)
?GetW32ComputerName@@YGJAAVNLS_STR@@@Z
; long __stdcall GetW32UserAndDomainName(class NLS_STR &,class NLS_STR &)
?GetW32UserAndDomainName@@YGJAAVNLS_STR@@0@Z
; long __stdcall GetW32UserName(class NLS_STR &)
?GetW32UserName@@YGJAAVNLS_STR@@@Z
; private: long __thiscall BROWSE_DOMAIN_ENUM::GetWorkgroupDomains(void)
?GetWorkgroupDomains@BROWSE_DOMAIN_ENUM@@AAEJXZ
; protected: long __thiscall USER::HandleNullAccount(void)
?HandleNullAccount@USER@@IAEJXZ
; public: int __thiscall OS_DACL_SUBJECT_ITER::HasInheritOnlyAce(void)const 
?HasInheritOnlyAce@OS_DACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_SACL_SUBJECT_ITER::HasInheritOnlyAuditAce_F(void)const 
?HasInheritOnlyAuditAce_F@OS_SACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_SACL_SUBJECT_ITER::HasInheritOnlyAuditAce_S(void)const 
?HasInheritOnlyAuditAce_S@OS_SACL_SUBJECT_ITER@@QBEHXZ
; protected: int __thiscall LM_RESUME_ENUM_ITER::HasMoreData(void)const 
?HasMoreData@LM_RESUME_ENUM_ITER@@IBEHXZ
; public: int __thiscall OS_DACL_SUBJECT_ITER::HasNewContainerAce(void)const 
?HasNewContainerAce@OS_DACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_SACL_SUBJECT_ITER::HasNewContainerAuditAce_F(void)const 
?HasNewContainerAuditAce_F@OS_SACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_SACL_SUBJECT_ITER::HasNewContainerAuditAce_S(void)const 
?HasNewContainerAuditAce_S@OS_SACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_DACL_SUBJECT_ITER::HasNewObjectAce(void)const 
?HasNewObjectAce@OS_DACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_SACL_SUBJECT_ITER::HasNewObjectAuditAce_F(void)const 
?HasNewObjectAuditAce_F@OS_SACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_SACL_SUBJECT_ITER::HasNewObjectAuditAce_S(void)const 
?HasNewObjectAuditAce_S@OS_SACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_DACL_SUBJECT_ITER::HasThisAce(void)const 
?HasThisAce@OS_DACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_SACL_SUBJECT_ITER::HasThisAuditAce_F(void)const 
?HasThisAuditAce_F@OS_SACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_SACL_SUBJECT_ITER::HasThisAuditAce_S(void)const 
?HasThisAuditAce_S@OS_SACL_SUBJECT_ITER@@QBEHXZ
; long __stdcall I_AppendToSTRLIST(class STRLIST *,class NLS_STR &)
?I_AppendToSTRLIST@@YGJPAVSTRLIST@@AAVNLS_STR@@@Z
; protected: virtual long __thiscall GROUP_1::I_ChangeToNew(void)
?I_ChangeToNew@GROUP_1@@MAEJXZ
; protected: virtual long __thiscall GROUP_MEMB::I_ChangeToNew(void)
?I_ChangeToNew@GROUP_MEMB@@MAEJXZ
; protected: virtual long __thiscall NEW_LM_OBJ::I_ChangeToNew(void)
?I_ChangeToNew@NEW_LM_OBJ@@MAEJXZ
; protected: virtual long __thiscall USER_2::I_ChangeToNew(void)
?I_ChangeToNew@USER_2@@MAEJXZ
; protected: virtual long __thiscall USER_3::I_ChangeToNew(void)
?I_ChangeToNew@USER_3@@MAEJXZ
; protected: virtual long __thiscall USER_MEMB::I_ChangeToNew(void)
?I_ChangeToNew@USER_MEMB@@MAEJXZ
; protected: virtual long __thiscall GROUP_1::I_CreateNew(void)
?I_CreateNew@GROUP_1@@MAEJXZ
; protected: virtual long __thiscall GROUP_MEMB::I_CreateNew(void)
?I_CreateNew@GROUP_MEMB@@MAEJXZ
; protected: virtual long __thiscall LSA_ACCOUNT::I_CreateNew(void)
?I_CreateNew@LSA_ACCOUNT@@MAEJXZ
; protected: virtual long __thiscall NET_ACCESS_1::I_CreateNew(void)
?I_CreateNew@NET_ACCESS_1@@MAEJXZ
; protected: virtual long __thiscall NEW_LM_OBJ::I_CreateNew(void)
?I_CreateNew@NEW_LM_OBJ@@MAEJXZ
; protected: virtual long __thiscall SHARE_2::I_CreateNew(void)
?I_CreateNew@SHARE_2@@MAEJXZ
; protected: virtual long __thiscall USER_2::I_CreateNew(void)
?I_CreateNew@USER_2@@MAEJXZ
; protected: virtual long __thiscall USER_3::I_CreateNew(void)
?I_CreateNew@USER_3@@MAEJXZ
; protected: virtual long __thiscall USER_MEMB::I_CreateNew(void)
?I_CreateNew@USER_MEMB@@MAEJXZ
; protected: virtual long __thiscall GROUP::I_Delete(unsigned int)
?I_Delete@GROUP@@MAEJI@Z
; protected: virtual long __thiscall LM_SESSION::I_Delete(unsigned int)
?I_Delete@LM_SESSION@@MAEJI@Z
; protected: virtual long __thiscall LSA_ACCOUNT::I_Delete(unsigned int)
?I_Delete@LSA_ACCOUNT@@MAEJI@Z
; protected: virtual long __thiscall NEW_LM_OBJ::I_Delete(unsigned int)
?I_Delete@NEW_LM_OBJ@@MAEJI@Z
; protected: virtual long __thiscall SHARE::I_Delete(unsigned int)
?I_Delete@SHARE@@MAEJI@Z
; protected: virtual long __thiscall USER::I_Delete(unsigned int)
?I_Delete@USER@@MAEJI@Z
; long __stdcall I_FetchAliasFields(class NLS_STR *,class ADMIN_AUTHORITY * *,class SLIST_OF_ADMIN_AUTHORITY *,unsigned long,int,class NLS_STR const &,class NLS_STR const *,long *)
?I_FetchAliasFields@@YGJPAVNLS_STR@@PAPAVADMIN_AUTHORITY@@PAVSLIST_OF_ADMIN_AUTHORITY@@KHABV1@PBV1@PAJ@Z
; long __stdcall I_FetchDCList(class LSA_TRANSLATED_NAME_MEM const &,class LSA_REF_DOMAIN_MEM const &,void *,void *,class NLS_STR * *,class STRLIST *,int *,long *,unsigned short const *,int,int,int)
?I_FetchDCList@@YGJABVLSA_TRANSLATED_NAME_MEM@@ABVLSA_REF_DOMAIN_MEM@@PAX2PAPAVNLS_STR@@PAVSTRLIST@@PAHPAJPBGHHH@Z
; long __stdcall I_FetchGroupFields(class NLS_STR *,class NLS_STR const &,class NLS_STR const *,long *)
?I_FetchGroupFields@@YGJPAVNLS_STR@@ABV1@PBV1@PAJ@Z
; long __stdcall I_FetchUserFields(class NLS_STR *,class NLS_STR *,unsigned long *,class NLS_STR const &,class NLS_STR const *,long *)
?I_FetchUserFields@@YGJPAVNLS_STR@@0PAKABV1@PBV1@PAJ@Z
; protected: virtual long __thiscall GROUP_1::I_GetInfo(void)
?I_GetInfo@GROUP_1@@MAEJXZ
; protected: virtual long __thiscall LM_FILE_2::I_GetInfo(void)
?I_GetInfo@LM_FILE_2@@MAEJXZ
; protected: virtual long __thiscall LM_FILE_3::I_GetInfo(void)
?I_GetInfo@LM_FILE_3@@MAEJXZ
; protected: virtual long __thiscall LM_SESSION_0::I_GetInfo(void)
?I_GetInfo@LM_SESSION_0@@MAEJXZ
; protected: virtual long __thiscall LM_SESSION_10::I_GetInfo(void)
?I_GetInfo@LM_SESSION_10@@MAEJXZ
; protected: virtual long __thiscall LM_SESSION_1::I_GetInfo(void)
?I_GetInfo@LM_SESSION_1@@MAEJXZ
; protected: virtual long __thiscall LM_SESSION_2::I_GetInfo(void)
?I_GetInfo@LM_SESSION_2@@MAEJXZ
; protected: virtual long __thiscall LOCAL_USER::I_GetInfo(void)
?I_GetInfo@LOCAL_USER@@MAEJXZ
; protected: virtual long __thiscall LSA_ACCOUNT::I_GetInfo(void)
?I_GetInfo@LSA_ACCOUNT@@MAEJXZ
; protected: virtual long __thiscall MEMBERSHIP_LM_OBJ::I_GetInfo(void)
?I_GetInfo@MEMBERSHIP_LM_OBJ@@MAEJXZ
; protected: virtual long __thiscall NET_ACCESS_1::I_GetInfo(void)
?I_GetInfo@NET_ACCESS_1@@MAEJXZ
; protected: virtual long __thiscall NEW_LM_OBJ::I_GetInfo(void)
?I_GetInfo@NEW_LM_OBJ@@MAEJXZ
; protected: virtual long __thiscall SERVER_0::I_GetInfo(void)
?I_GetInfo@SERVER_0@@MAEJXZ
; protected: virtual long __thiscall SERVER_1::I_GetInfo(void)
?I_GetInfo@SERVER_1@@MAEJXZ
; protected: virtual long __thiscall SERVER_2::I_GetInfo(void)
?I_GetInfo@SERVER_2@@MAEJXZ
; protected: virtual long __thiscall SHARE_1::I_GetInfo(void)
?I_GetInfo@SHARE_1@@MAEJXZ
; protected: virtual long __thiscall SHARE_2::I_GetInfo(void)
?I_GetInfo@SHARE_2@@MAEJXZ
; protected: virtual long __thiscall TIME_OF_DAY::I_GetInfo(void)
?I_GetInfo@TIME_OF_DAY@@MAEJXZ
; protected: virtual long __thiscall USER_11::I_GetInfo(void)
?I_GetInfo@USER_11@@MAEJXZ
; protected: virtual long __thiscall USER_2::I_GetInfo(void)
?I_GetInfo@USER_2@@MAEJXZ
; protected: virtual long __thiscall USER_3::I_GetInfo(void)
?I_GetInfo@USER_3@@MAEJXZ
; public: virtual long __thiscall WKSTA_10::I_GetInfo(void)
?I_GetInfo@WKSTA_10@@UAEJXZ
; public: virtual long __thiscall WKSTA_1::I_GetInfo(void)
?I_GetInfo@WKSTA_1@@UAEJXZ
; protected: virtual long __thiscall WKSTA_USER_1::I_GetInfo(void)
?I_GetInfo@WKSTA_USER_1@@MAEJXZ
; protected: virtual long __thiscall GROUP_1::I_WriteInfo(void)
?I_WriteInfo@GROUP_1@@MAEJXZ
; protected: virtual long __thiscall GROUP_MEMB::I_WriteInfo(void)
?I_WriteInfo@GROUP_MEMB@@MAEJXZ
; protected: virtual long __thiscall LSA_ACCOUNT::I_WriteInfo(void)
?I_WriteInfo@LSA_ACCOUNT@@MAEJXZ
; protected: virtual long __thiscall NET_ACCESS_1::I_WriteInfo(void)
?I_WriteInfo@NET_ACCESS_1@@MAEJXZ
; protected: virtual long __thiscall NEW_LM_OBJ::I_WriteInfo(void)
?I_WriteInfo@NEW_LM_OBJ@@MAEJXZ
; protected: virtual long __thiscall SERVER_1::I_WriteInfo(void)
?I_WriteInfo@SERVER_1@@MAEJXZ
; protected: virtual long __thiscall SERVER_2::I_WriteInfo(void)
?I_WriteInfo@SERVER_2@@MAEJXZ
; protected: virtual long __thiscall SHARE_1::I_WriteInfo(void)
?I_WriteInfo@SHARE_1@@MAEJXZ
; protected: virtual long __thiscall SHARE_2::I_WriteInfo(void)
?I_WriteInfo@SHARE_2@@MAEJXZ
; protected: virtual long __thiscall USER_2::I_WriteInfo(void)
?I_WriteInfo@USER_2@@MAEJXZ
; protected: virtual long __thiscall USER_3::I_WriteInfo(void)
?I_WriteInfo@USER_3@@MAEJXZ
; protected: virtual long __thiscall USER_MEMB::I_WriteInfo(void)
?I_WriteInfo@USER_MEMB@@MAEJXZ
; protected: virtual long __thiscall WKSTA_USER_1::I_WriteInfo(void)
?I_WriteInfo@WKSTA_USER_1@@MAEJXZ
; private: long __thiscall NET_ACCESS_1::I_WriteInfoAux(void)
?I_WriteInfoAux@NET_ACCESS_1@@AAEJXZ
; protected: virtual long __thiscall GROUP_1::I_WriteNew(void)
?I_WriteNew@GROUP_1@@MAEJXZ
; protected: virtual long __thiscall LSA_ACCOUNT::I_WriteNew(void)
?I_WriteNew@LSA_ACCOUNT@@MAEJXZ
; protected: virtual long __thiscall MEMBERSHIP_LM_OBJ::I_WriteNew(void)
?I_WriteNew@MEMBERSHIP_LM_OBJ@@MAEJXZ
; protected: virtual long __thiscall NET_ACCESS_1::I_WriteNew(void)
?I_WriteNew@NET_ACCESS_1@@MAEJXZ
; protected: virtual long __thiscall NEW_LM_OBJ::I_WriteNew(void)
?I_WriteNew@NEW_LM_OBJ@@MAEJXZ
; protected: virtual long __thiscall SHARE_2::I_WriteNew(void)
?I_WriteNew@SHARE_2@@MAEJXZ
; protected: virtual long __thiscall USER_2::I_WriteNew(void)
?I_WriteNew@USER_2@@MAEJXZ
; protected: virtual long __thiscall USER_3::I_WriteNew(void)
?I_WriteNew@USER_3@@MAEJXZ
; private: static void __stdcall LSA_POLICY::InitObjectAttributes(struct _OBJECT_ATTRIBUTES *,struct _SECURITY_QUALITY_OF_SERVICE *)
?InitObjectAttributes@LSA_POLICY@@CGXPAU_OBJECT_ATTRIBUTES@@PAU_SECURITY_QUALITY_OF_SERVICE@@@Z
; public: void __thiscall OS_SACL_SUBJECT_DESCRIPTOR::InitToZero(void)
?InitToZero@OS_SACL_SUBJECT_DESCRIPTOR@@QAEXXZ
; private: void __thiscall OS_SACL_SUBJECT_ITER::InitToZero(void)
?InitToZero@OS_SACL_SUBJECT_ITER@@AAEXXZ
; private: void __thiscall OS_PRIVILEGE_SET::InitializeMemory(void)
?InitializeMemory@OS_PRIVILEGE_SET@@AAEXXZ
; public: static void __stdcall OS_SID::InitializeMemory(void *)
?InitializeMemory@OS_SID@@SGXPAX@Z
; public: long __thiscall SLIST_OF_BROWSE_DOMAIN_INFO::Insert(class BROWSE_DOMAIN_INFO const *,class ITER_SL_BROWSE_DOMAIN_INFO &)
?Insert@SLIST_OF_BROWSE_DOMAIN_INFO@@QAEJPBVBROWSE_DOMAIN_INFO@@AAVITER_SL_BROWSE_DOMAIN_INFO@@@Z
; public: long __thiscall LSA_ACCOUNT::InsertPrivilege(struct _LUID,unsigned long)
?InsertPrivilege@LSA_ACCOUNT@@QAEJU_LUID@@K@Z
; public: int __thiscall USER_11::IsAccountsOperator(void)const 
?IsAccountsOperator@USER_11@@QBEHXZ
; public: int __thiscall USER_11::IsCommOperator(void)const 
?IsCommOperator@USER_11@@QBEHXZ
; public: int __thiscall OS_ACL_SUBJECT_ITER::IsContainer(void)const 
?IsContainer@OS_ACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall LM_SERVICE::IsContinuing(long *)
?IsContinuing@LM_SERVICE@@QAEHPAJ@Z
; public: int __thiscall OS_SECURITY_DESCRIPTOR_CONTROL::IsDACLDefaulted(void)const 
?IsDACLDefaulted@OS_SECURITY_DESCRIPTOR_CONTROL@@QBEHXZ
; public: int __thiscall OS_SECURITY_DESCRIPTOR::IsDACLPresent(void)const 
?IsDACLPresent@OS_SECURITY_DESCRIPTOR@@QBEHXZ
; public: int __thiscall OS_SECURITY_DESCRIPTOR_CONTROL::IsDACLPresent(void)const 
?IsDACLPresent@OS_SECURITY_DESCRIPTOR_CONTROL@@QBEHXZ
; public: int __thiscall LSA_ACCOUNT::IsDefaultSettings(void)
?IsDefaultSettings@LSA_ACCOUNT@@QAEHXZ
; public: int __thiscall OS_DACL_SUBJECT_ITER::IsDenyAll(void)const 
?IsDenyAll@OS_DACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall LOCATION::IsDomain(void)const 
?IsDomain@LOCATION@@QBEHXZ
; public: int __thiscall LM_SESSION_1::IsEncrypted(void)const 
?IsEncrypted@LM_SESSION_1@@QBEHXZ
; public: int __thiscall OS_SECURITY_DESCRIPTOR_CONTROL::IsGroupDefaulted(void)const 
?IsGroupDefaulted@OS_SECURITY_DESCRIPTOR_CONTROL@@QBEHXZ
; public: int __thiscall LM_SESSION_1::IsGuest(void)const 
?IsGuest@LM_SESSION_1@@QBEHXZ
; public: int __thiscall LSA_OBJECT::IsHandleValid(void)const 
?IsHandleValid@LSA_OBJECT@@QBEHXZ
; public: int __thiscall OS_ACE::IsInheritOnly(void)const 
?IsInheritOnly@OS_ACE@@QBEHXZ
; public: int __thiscall OS_DACL_SUBJECT_ITER::IsInheritOnlyDenyAll(void)const 
?IsInheritOnlyDenyAll@OS_DACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_ACE::IsInheritancePropagated(void)const 
?IsInheritancePropagated@OS_ACE@@QBEHXZ
; public: int __thiscall OS_ACE::IsInherittedByNewContainers(void)const 
?IsInherittedByNewContainers@OS_ACE@@QBEHXZ
; public: int __thiscall OS_ACE::IsInherittedByNewObjects(void)const 
?IsInherittedByNewObjects@OS_ACE@@QBEHXZ
; protected: int __thiscall LM_OBJ::IsInvalid(void)const 
?IsInvalid@LM_OBJ@@IBEHXZ
; private: int __thiscall LM_OBJ_BASE::IsInvalid(void)const 
?IsInvalid@LM_OBJ_BASE@@ABEHXZ
; public: int __thiscall OS_ACE::IsKnownACE(void)const 
?IsKnownACE@OS_ACE@@QBEHXZ
; public: int __thiscall NET_NAME::IsLocal(long *)
?IsLocal@NET_NAME@@QAEHPAJ@Z
; private: int __thiscall NEW_LM_OBJ::IsNew(void)const 
?IsNew@NEW_LM_OBJ@@ABEHXZ
; public: int __thiscall OS_DACL_SUBJECT_ITER::IsNewContainerDenyAll(void)const 
?IsNewContainerDenyAll@OS_DACL_SUBJECT_ITER@@QBEHXZ
; public: int __thiscall OS_DACL_SUBJECT_ITER::IsNewObjectDenyAll(void)const 
?IsNewObjectDenyAll@OS_DACL_SUBJECT_ITER@@QBEHXZ
; protected: int __thiscall NEW_LM_OBJ::IsOKState(void)const 
?IsOKState@NEW_LM_OBJ@@IBEHXZ
; protected: int __thiscall OS_ACE::IsOwnerAlloc(void)const 
?IsOwnerAlloc@OS_ACE@@IBEHXZ
; protected: int __thiscall OS_ACL::IsOwnerAlloc(void)const 
?IsOwnerAlloc@OS_ACL@@IBEHXZ
; private: int __thiscall OS_PRIVILEGE_SET::IsOwnerAlloc(void)const 
?IsOwnerAlloc@OS_PRIVILEGE_SET@@ABEHXZ
; protected: int __thiscall OS_SID::IsOwnerAlloc(void)const 
?IsOwnerAlloc@OS_SID@@IBEHXZ
; public: int __thiscall OS_SECURITY_DESCRIPTOR_CONTROL::IsOwnerDefaulted(void)const 
?IsOwnerDefaulted@OS_SECURITY_DESCRIPTOR_CONTROL@@QBEHXZ
; public: int __thiscall LM_SERVICE::IsPaused(long *)
?IsPaused@LM_SERVICE@@QAEHPAJ@Z
; public: int __thiscall LM_SERVICE::IsPausing(long *)
?IsPausing@LM_SERVICE@@QAEHPAJ@Z
; public: int __thiscall LM_FILE_3::IsPermCreate(void)const 
?IsPermCreate@LM_FILE_3@@QBEHXZ
; public: int __thiscall LM_FILE_3::IsPermRead(void)const 
?IsPermRead@LM_FILE_3@@QBEHXZ
; public: int __thiscall LM_FILE_3::IsPermWrite(void)const 
?IsPermWrite@LM_FILE_3@@QBEHXZ
; public: int __thiscall USER_11::IsPrintOperator(void)const 
?IsPrintOperator@USER_11@@QBEHXZ
; public: int __thiscall OS_SECURITY_DESCRIPTOR_CONTROL::IsSACLDefaulted(void)const 
?IsSACLDefaulted@OS_SECURITY_DESCRIPTOR_CONTROL@@QBEHXZ
; public: int __thiscall OS_SECURITY_DESCRIPTOR::IsSACLPresent(void)const 
?IsSACLPresent@OS_SECURITY_DESCRIPTOR@@QBEHXZ
; public: int __thiscall OS_SECURITY_DESCRIPTOR_CONTROL::IsSACLPresent(void)const 
?IsSACLPresent@OS_SECURITY_DESCRIPTOR_CONTROL@@QBEHXZ
; public: int __thiscall LOCATION::IsServer(void)const 
?IsServer@LOCATION@@QBEHXZ
; public: int __thiscall USER_11::IsServerOperator(void)const 
?IsServerOperator@USER_11@@QBEHXZ
; public: int __thiscall NET_NAME::IsSharable(long *)
?IsSharable@NET_NAME@@QAEHPAJ@Z
; public: int __thiscall LM_SERVICE::IsStarted(long *)
?IsStarted@LM_SERVICE@@QAEHPAJ@Z
; public: int __thiscall LM_SERVICE::IsStarting(long *)
?IsStarting@LM_SERVICE@@QAEHPAJ@Z
; public: int __thiscall LM_SERVICE::IsStopped(long *)
?IsStopped@LM_SERVICE@@QAEHPAJ@Z
; public: int __thiscall LM_SERVICE::IsStopping(long *)
?IsStopping@LM_SERVICE@@QAEHPAJ@Z
; protected: int __thiscall LM_OBJ::IsUnconstructed(void)const 
?IsUnconstructed@LM_OBJ@@IBEHXZ
; private: int __thiscall LM_OBJ_BASE::IsUnconstructed(void)const 
?IsUnconstructed@LM_OBJ_BASE@@ABEHXZ
; protected: int __thiscall LM_OBJ::IsValid(void)const 
?IsValid@LM_OBJ@@IBEHXZ
; private: int __thiscall LM_OBJ_BASE::IsValid(void)const 
?IsValid@LM_OBJ_BASE@@ABEHXZ
; public: int __thiscall OS_ACL::IsValid(void)const 
?IsValid@OS_ACL@@QBEHXZ
; public: int __thiscall OS_SECURITY_DESCRIPTOR::IsValid(void)const 
?IsValid@OS_SECURITY_DESCRIPTOR@@QBEHXZ
; public: int __thiscall OS_SID::IsValid(void)const 
?IsValid@OS_SID@@QBEHXZ
; public: static int __stdcall DOMAIN::IsValidDC(unsigned short const *,unsigned short const *)
?IsValidDC@DOMAIN@@SGHPBG0@Z
; public: int __thiscall LM_OBJ_BASE::IsValidationOn(void)
?IsValidationOn@LM_OBJ_BASE@@QAEHXZ
; int __stdcall IsWhiteSpace(unsigned short)
?IsWhiteSpace@@YGHG@Z
; public: long __thiscall LSA_POLICY::JoinDomain(class NLS_STR const &,class NLS_STR const &,int,class NLS_STR const *,unsigned short const *)
?JoinDomain@LSA_POLICY@@QAEJABVNLS_STR@@0HPBV2@PBG@Z
; int __stdcall LMOTypeToNetType(enum LMO_DEVICE)
?LMOTypeToNetType@@YGHW4LMO_DEVICE@@@Z
; private: static void __stdcall DOMAIN_WITH_DC_CACHE::LeaveCriticalSection(void)
?LeaveCriticalSection@DOMAIN_WITH_DC_CACHE@@CGXXZ
; public: long __thiscall LSA_POLICY::LeaveDomain(void)
?LeaveDomain@LSA_POLICY@@QAEJXZ
; public: long __thiscall SC_MANAGER::Lock(void)
?Lock@SC_MANAGER@@QAEJXZ
; long __stdcall LsaxGetComputerName(class NLS_STR *)
?LsaxGetComputerName@@YGJPAVNLS_STR@@@Z
; protected: void __thiscall LM_OBJ::MakeConstructed(void)
?MakeConstructed@LM_OBJ@@IAEXXZ
; private: void __thiscall LM_OBJ_BASE::MakeConstructed(void)
?MakeConstructed@LM_OBJ_BASE@@AAEXXZ
; protected: void __thiscall LM_OBJ::MakeInvalid(void)
?MakeInvalid@LM_OBJ@@IAEXXZ
; private: void __thiscall LM_OBJ_BASE::MakeInvalid(void)
?MakeInvalid@LM_OBJ_BASE@@AAEXXZ
; private: void __thiscall NEW_LM_OBJ::MakeNew(void)
?MakeNew@NEW_LM_OBJ@@AAEXXZ
; unsigned long __stdcall MakeNullNull(unsigned short const *,unsigned short * *)
?MakeNullNull@@YGKPBGPAPAG@Z
; private: static long __stdcall LSA_POLICY::MakeSecretName(class NLS_STR const &,int,class NLS_STR *)
?MakeSecretName@LSA_POLICY@@CGJABVNLS_STR@@HPAV2@@Z
; protected: void __thiscall LM_OBJ::MakeUnconstructed(void)
?MakeUnconstructed@LM_OBJ@@IAEXXZ
; private: void __thiscall LM_OBJ_BASE::MakeUnconstructed(void)
?MakeUnconstructed@LM_OBJ_BASE@@AAEXXZ
; protected: void __thiscall LM_OBJ::MakeValid(void)
?MakeValid@LM_OBJ@@IAEXXZ
; private: void __thiscall LM_OBJ_BASE::MakeValid(void)
?MakeValid@LM_OBJ_BASE@@AAEXXZ
; private: void __thiscall TRIPLE_SERVER_ENUM::MapBrowserToTriple(struct _SERVER_INFO_101 const *,struct _TRIPLE_SERVER_INFO *)
?MapBrowserToTriple@TRIPLE_SERVER_ENUM@@AAEXPBU_SERVER_INFO_101@@PAU_TRIPLE_SERVER_INFO@@@Z
; unsigned long __stdcall MapComm(unsigned short const *)
?MapComm@@YGKPBG@Z
; unsigned long __stdcall MapDrive(unsigned short const *)
?MapDrive@@YGKPBG@Z
; public: int __thiscall OS_ACL_SUBJECT_ITER::MapGenericAllOnly(void)const 
?MapGenericAllOnly@OS_ACL_SUBJECT_ITER@@QBEHXZ
; private: void __thiscall TRIPLE_SERVER_ENUM::MapKnownToTriple(struct _KNOWN_SERVER_INFO const *,struct _TRIPLE_SERVER_INFO *)
?MapKnownToTriple@TRIPLE_SERVER_ENUM@@AAEXPBU_KNOWN_SERVER_INFO@@PAU_TRIPLE_SERVER_INFO@@@Z
; unsigned long __stdcall MapLPT(unsigned short const *)
?MapLPT@@YGKPBG@Z
; private: void __thiscall SERVICE_ENUM::MapLmStatusToNtState(unsigned long,unsigned long *,unsigned long *)
?MapLmStatusToNtState@SERVICE_ENUM@@AAEXKPAK0@Z
; private: void __thiscall TRIPLE_SERVER_ENUM::MapLmToKnown(struct _USER_INFO_0 const *,struct _KNOWN_SERVER_INFO *)
?MapLmToKnown@TRIPLE_SERVER_ENUM@@AAEXPBU_USER_INFO_0@@PAU_KNOWN_SERVER_INFO@@@Z
; private: void __thiscall TRIPLE_SERVER_ENUM::MapNtToKnown(struct _DOMAIN_DISPLAY_MACHINE const *,struct _KNOWN_SERVER_INFO *)
?MapNtToKnown@TRIPLE_SERVER_ENUM@@AAEXPBU_DOMAIN_DISPLAY_MACHINE@@PAU_KNOWN_SERVER_INFO@@@Z
; public: long __thiscall OS_ACL_SUBJECT_ITER::MapSpecificToGeneric(unsigned long *,int)
?MapSpecificToGeneric@OS_ACL_SUBJECT_ITER@@QAEJPAKH@Z
; private: enum _SERVER_ROLE  __thiscall TRIPLE_SERVER_ENUM::MapTypeMaskToRole(unsigned long)const 
?MapTypeMaskToRole@TRIPLE_SERVER_ENUM@@ABE?AW4_SERVER_ROLE@@K@Z
; private: enum _SERVER_TYPE  __thiscall TRIPLE_SERVER_ENUM::MapTypeMaskToType(unsigned long)const 
?MapTypeMaskToType@TRIPLE_SERVER_ENUM@@ABE?AW4_SERVER_TYPE@@K@Z
; enum LMO_DEVICE  __stdcall NetTypeToLMOType(unsigned long)
?NetTypeToLMOType@@YG?AW4LMO_DEVICE@@K@Z
; public: class ALIAS_ENUM_OBJ const * __thiscall ALIAS_ENUM_ITER::Next(long *,int)
?Next@ALIAS_ENUM_ITER@@QAEPBVALIAS_ENUM_OBJ@@PAJH@Z
; public: class BROWSE_DOMAIN_INFO const * __thiscall BROWSE_DOMAIN_ENUM::Next(void)
?Next@BROWSE_DOMAIN_ENUM@@QAEPBVBROWSE_DOMAIN_INFO@@XZ
; public: class FILE2_ENUM_OBJ const * __thiscall FILE2_ENUM_ITER::Next(long *,int)
?Next@FILE2_ENUM_ITER@@QAEPBVFILE2_ENUM_OBJ@@PAJH@Z
; public: class FILE3_ENUM_OBJ const * __thiscall FILE3_ENUM_ITER::Next(long *,int)
?Next@FILE3_ENUM_ITER@@QAEPBVFILE3_ENUM_OBJ@@PAJH@Z
; public: unsigned short const * __thiscall ITER_DEVICE::Next(void)
?Next@ITER_DEVICE@@QAEPBGXZ
; public: class BROWSE_DOMAIN_INFO * __thiscall ITER_SL_BROWSE_DOMAIN_INFO::Next(void)
?Next@ITER_SL_BROWSE_DOMAIN_INFO@@QAEPAVBROWSE_DOMAIN_INFO@@XZ
; public: class LM_RESUME_BUFFER * __thiscall ITER_SL_LM_RESUME_BUFFER::Next(void)
?Next@ITER_SL_LM_RESUME_BUFFER@@QAEPAVLM_RESUME_BUFFER@@XZ
; public: class NLS_STR * __thiscall ITER_SL_NLS_STR::Next(void)
?Next@ITER_SL_NLS_STR@@QAEPAVNLS_STR@@XZ
; public: class LSA_ACCOUNTS_ENUM_OBJ const * __thiscall LSA_ACCOUNTS_ENUM_ITER::Next(long *,int)
?Next@LSA_ACCOUNTS_ENUM_ITER@@QAEPBVLSA_ACCOUNTS_ENUM_OBJ@@PAJH@Z
; public: class LSA_PRIVILEGES_ENUM_OBJ const * __thiscall LSA_PRIVILEGES_ENUM_ITER::Next(long *,int)
?Next@LSA_PRIVILEGES_ENUM_ITER@@QAEPBVLSA_PRIVILEGES_ENUM_OBJ@@PAJH@Z
; public: class NT_GROUP_ENUM_OBJ const * __thiscall NT_GROUP_ENUM_ITER::Next(long *,int)
?Next@NT_GROUP_ENUM_ITER@@QAEPBVNT_GROUP_ENUM_OBJ@@PAJH@Z
; public: class NT_MACHINE_ENUM_OBJ const * __thiscall NT_MACHINE_ENUM_ITER::Next(long *,int)
?Next@NT_MACHINE_ENUM_ITER@@QAEPBVNT_MACHINE_ENUM_OBJ@@PAJH@Z
; public: class NT_USER_ENUM_OBJ const * __thiscall NT_USER_ENUM_ITER::Next(long *,int)
?Next@NT_USER_ENUM_ITER@@QAEPBVNT_USER_ENUM_OBJ@@PAJH@Z
; public: virtual int __thiscall OS_DACL_SUBJECT_ITER::Next(long *)
?Next@OS_DACL_SUBJECT_ITER@@UAEHPAJ@Z
; public: virtual int __thiscall OS_SACL_SUBJECT_ITER::Next(long *)
?Next@OS_SACL_SUBJECT_ITER@@UAEHPAJ@Z
; public: class SAM_USER_ENUM_OBJ const * __thiscall SAM_USER_ENUM_ITER::Next(long *,int)
?Next@SAM_USER_ENUM_ITER@@QAEPBVSAM_USER_ENUM_OBJ@@PAJH@Z
; public: class TRUSTED_DOMAIN_ENUM_OBJ const * __thiscall TRUSTED_DOMAIN_ENUM_ITER::Next(long *,int)
?Next@TRUSTED_DOMAIN_ENUM_ITER@@QAEPBVTRUSTED_DOMAIN_ENUM_OBJ@@PAJH@Z
; public: class USER0_ENUM_OBJ const * __thiscall USER0_ENUM_ITER::Next(long *,int)
?Next@USER0_ENUM_ITER@@QAEPBVUSER0_ENUM_OBJ@@PAJH@Z
; public: class USER10_ENUM_OBJ const * __thiscall USER10_ENUM_ITER::Next(long *,int)
?Next@USER10_ENUM_ITER@@QAEPBVUSER10_ENUM_OBJ@@PAJH@Z
; public: class USER1_ENUM_OBJ const * __thiscall USER1_ENUM_ITER::Next(long *,int)
?Next@USER1_ENUM_ITER@@QAEPBVUSER1_ENUM_OBJ@@PAJH@Z
; public: class USER2_ENUM_OBJ const * __thiscall USER2_ENUM_ITER::Next(long *,int)
?Next@USER2_ENUM_ITER@@QAEPBVUSER2_ENUM_OBJ@@PAJH@Z
; protected: long __thiscall LM_RESUME_ENUM_ITER::NextGetInfo(void)
?NextGetInfo@LM_RESUME_ENUM_ITER@@IAEJXZ
; protected: void __thiscall LM_RESUME_ENUM::NukeBuffers(void)
?NukeBuffers@LM_RESUME_ENUM@@IAEXXZ
; public: static long __stdcall LM_SRVRES::NukeUsersSession(unsigned short const *,unsigned short const *,unsigned short const *)
?NukeUsersSession@LM_SRVRES@@SGJPBG00@Z
; public: long __thiscall LSA_POLICY::Open(unsigned short const *,unsigned long)
?Open@LSA_POLICY@@QAEJPBGK@Z
; public: long __thiscall LSA_SECRET::Open(class LSA_POLICY const &,unsigned long)
?Open@LSA_SECRET@@QAEJABVLSA_POLICY@@K@Z
; private: long __thiscall SAM_DOMAIN::OpenDomain(class SAM_SERVER const &,void *,unsigned long)
?OpenDomain@SAM_DOMAIN@@AAEJABVSAM_SERVER@@PAXK@Z
; public: long __thiscall LM_SERVICE::Pause(unsigned int,unsigned int)
?Pause@LM_SERVICE@@QAEJII@Z
; public: long __thiscall LM_SERVICE::Poll(int *)
?Poll@LM_SERVICE@@QAEJPAH@Z
; protected: void __thiscall LSA_ACCOUNT::PrintInfo(unsigned short const *)
?PrintInfo@LSA_ACCOUNT@@IAEXPBG@Z
; public: struct _ACCESS_LIST * __thiscall NET_ACCESS_1::QueryACE(unsigned int)const 
?QueryACE@NET_ACCESS_1@@QBEPAU_ACCESS_LIST@@I@Z
; public: void * __thiscall OS_ACE::QueryACE(void)const 
?QueryACE@OS_ACE@@QBEPAXXZ
; public: long __thiscall OS_ACL::QueryACE(unsigned long,class OS_ACE *)const 
?QueryACE@OS_ACL@@QBEJKPAVOS_ACE@@@Z
; public: unsigned int __thiscall NET_ACCESS_1::QueryACECount(void)const 
?QueryACECount@NET_ACCESS_1@@QBEIXZ
; public: long __thiscall OS_ACL::QueryACECount(unsigned long *)const 
?QueryACECount@OS_ACL@@QBEJPAK@Z
; protected: class OS_ACL const * __thiscall OS_ACL_SUBJECT_ITER::QueryACL(void)const 
?QueryACL@OS_ACL_SUBJECT_ITER@@IBEPBVOS_ACL@@XZ
; public: unsigned long __thiscall ADMIN_AUTHORITY::QueryAccessAccountDomain(void)const 
?QueryAccessAccountDomain@ADMIN_AUTHORITY@@QBEKXZ
; public: unsigned long __thiscall ADMIN_AUTHORITY::QueryAccessBuiltinDomain(void)const 
?QueryAccessBuiltinDomain@ADMIN_AUTHORITY@@QBEKXZ
; public: unsigned long __thiscall ADMIN_AUTHORITY::QueryAccessLSAPolicy(void)const 
?QueryAccessLSAPolicy@ADMIN_AUTHORITY@@QBEKXZ
; public: unsigned long __thiscall OS_ACE::QueryAccessMask(void)const 
?QueryAccessMask@OS_ACE@@QBEKXZ
; public: unsigned long __thiscall OS_DACL_SUBJECT_ITER::QueryAccessMask(void)const 
?QueryAccessMask@OS_DACL_SUBJECT_ITER@@QBEKXZ
; public: unsigned long __thiscall ADMIN_AUTHORITY::QueryAccessSamServer(void)const 
?QueryAccessSamServer@ADMIN_AUTHORITY@@QBEKXZ
; public: unsigned int __thiscall NT_MACHINE_ENUM_OBJ::QueryAccountCtrl(void)const 
?QueryAccountCtrl@NT_MACHINE_ENUM_OBJ@@QBEIXZ
; public: int __thiscall USER_2::QueryAccountDisabled(void)const 
?QueryAccountDisabled@USER_2@@QBEHXZ
; public: class SAM_DOMAIN * __thiscall ADMIN_AUTHORITY::QueryAccountDomain(void)const 
?QueryAccountDomain@ADMIN_AUTHORITY@@QBEPAVSAM_DOMAIN@@XZ
; public: long __thiscall USER_2::QueryAccountExpires(void)const 
?QueryAccountExpires@USER_2@@QBEJXZ
; public: enum _ACCOUNT_TYPE  __thiscall USER_3::QueryAccountType(void)const 
?QueryAccountType@USER_3@@QBE?AW4_ACCOUNT_TYPE@@XZ
; public: unsigned char __thiscall OS_ACE::QueryAceFlags(void)const 
?QueryAceFlags@OS_ACE@@QBEEXZ
; public: struct _ACL * __thiscall OS_ACL::QueryAcl(void)const 
?QueryAcl@OS_ACL@@QBEPAU_ACL@@XZ
; protected: unsigned int __thiscall OS_OBJECT_WITH_DATA::QueryAllocSize(void)const 
?QueryAllocSize@OS_OBJECT_WITH_DATA@@IBEIXZ
; public: unsigned short const * __thiscall DOMAIN::QueryAnyDC(void)const 
?QueryAnyDC@DOMAIN@@QBEPBGXZ
; public: unsigned short const * __thiscall MEMBERSHIP_LM_OBJ::QueryAssocName(unsigned int)const 
?QueryAssocName@MEMBERSHIP_LM_OBJ@@QBEPBGI@Z
; public: unsigned long __thiscall OS_SACL_SUBJECT_ITER::QueryAuditAccessMask_F(void)const 
?QueryAuditAccessMask_F@OS_SACL_SUBJECT_ITER@@QBEKXZ
; public: unsigned long __thiscall OS_SACL_SUBJECT_ITER::QueryAuditAccessMask_S(void)const 
?QueryAuditAccessMask_S@OS_SACL_SUBJECT_ITER@@QBEKXZ
; public: virtual unsigned long __thiscall LOCAL_USER::QueryAuthFlags(void)const 
?QueryAuthFlags@LOCAL_USER@@UBEKXZ
; public: virtual unsigned long __thiscall USER_11::QueryAuthFlags(void)const 
?QueryAuthFlags@USER_11@@UBEKXZ
; protected: unsigned char * __thiscall LM_ENUM_ITER::QueryBasePtr(void)const 
?QueryBasePtr@LM_ENUM_ITER@@IBEPAEXZ
; protected: unsigned char const * __thiscall LM_RESUME_ENUM_ITER::QueryBasePtr(void)const 
?QueryBasePtr@LM_RESUME_ENUM_ITER@@IBEPBEXZ
; protected: unsigned char * __thiscall DEVICE::QueryBufPtr(void)
?QueryBufPtr@DEVICE@@IAEPAEXZ
; protected: void * __thiscall NT_MEMORY::QueryBuffer(void)const 
?QueryBuffer@NT_MEMORY@@IBEPAXXZ
; public: class BUFFER const & __thiscall SERVICE_CONTROL::QueryBuffer(void)const 
?QueryBuffer@SERVICE_CONTROL@@QBEABVBUFFER@@XZ
; public: struct _SAM_RID_ENUMERATION const * __thiscall ALIAS_ENUM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@ALIAS_ENUM_OBJ@@QBEPBU_SAM_RID_ENUMERATION@@XZ
; public: struct _SERVER_INFO_100 const * __thiscall DOMAIN0_ENUM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@DOMAIN0_ENUM_OBJ@@QBEPBU_SERVER_INFO_100@@XZ
; protected: unsigned char const * __thiscall ENUM_OBJ_BASE::QueryBufferPtr(void)const 
?QueryBufferPtr@ENUM_OBJ_BASE@@IBEPBEXZ
; public: struct _FILE_INFO_3 const * __thiscall FILE3_ENUM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@FILE3_ENUM_OBJ@@QBEPBU_FILE_INFO_3@@XZ
; public: struct _GROUP_INFO_0 const * __thiscall GROUP0_ENUM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@GROUP0_ENUM_OBJ@@QBEPBU_GROUP_INFO_0@@XZ
; public: unsigned char const * __thiscall LM_RESUME_BUFFER::QueryBufferPtr(void)const 
?QueryBufferPtr@LM_RESUME_BUFFER@@QBEPBEXZ
; public: struct _POLICY_PRIVILEGE_DEFINITION const * __thiscall LSA_PRIVILEGES_ENUM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@LSA_PRIVILEGES_ENUM_OBJ@@QBEPBU_POLICY_PRIVILEGE_DEFINITION@@XZ
; protected: unsigned char * __thiscall NEW_LM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@NEW_LM_OBJ@@IBEPAEXZ
; public: struct _DOMAIN_DISPLAY_MACHINE const * __thiscall NT_MACHINE_ENUM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@NT_MACHINE_ENUM_OBJ@@QBEPBU_DOMAIN_DISPLAY_MACHINE@@XZ
; public: struct _SAM_RID_ENUMERATION const * __thiscall SAM_USER_ENUM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@SAM_USER_ENUM_OBJ@@QBEPBU_SAM_RID_ENUMERATION@@XZ
; public: struct _SERVER_INFO_101 const * __thiscall SERVER1_ENUM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@SERVER1_ENUM_OBJ@@QBEPBU_SERVER_INFO_101@@XZ
; public: struct _USER_INFO_0 const * __thiscall USER0_ENUM_OBJ::QueryBufferPtr(void)const 
?QueryBufferPtr@USER0_ENUM_OBJ@@QBEPBU_USER_INFO_0@@XZ
; protected: unsigned int __thiscall NEW_LM_OBJ::QueryBufferSize(void)const 
?QueryBufferSize@NEW_LM_OBJ@@IBEIXZ
; public: class SAM_DOMAIN * __thiscall ADMIN_AUTHORITY::QueryBuiltinDomain(void)const 
?QueryBuiltinDomain@ADMIN_AUTHORITY@@QBEPAVSAM_DOMAIN@@XZ
; public: long __thiscall OS_ACL::QueryBytesInUse(unsigned long *)const 
?QueryBytesInUse@OS_ACL@@QBEJPAK@Z
; public: unsigned short const * __thiscall LM_SESSION_2::QueryClientType(void)const 
?QueryClientType@LM_SESSION_2@@QBEPBGXZ
; public: unsigned short const * __thiscall GROUP_1::QueryComment(void)const 
?QueryComment@GROUP_1@@QBEPBGXZ
; public: unsigned short const * __thiscall SERVER1_ENUM_OBJ::QueryComment(void)const 
?QueryComment@SERVER1_ENUM_OBJ@@QBEPBGXZ
; public: unsigned short const * __thiscall SERVER_1::QueryComment(void)const 
?QueryComment@SERVER_1@@QBEPBGXZ
; public: unsigned short const * __thiscall SHARE_1::QueryComment(void)const 
?QueryComment@SHARE_1@@QBEPBGXZ
; public: unsigned short const * __thiscall USER_11::QueryComment(void)const 
?QueryComment@USER_11@@QBEPBGXZ
; public: long __thiscall NET_NAME::QueryComputerName(class NLS_STR *)
?QueryComputerName@NET_NAME@@QAEJPAVNLS_STR@@@Z
; public: long __thiscall SC_SERVICE::QueryConfig(struct _QUERY_SERVICE_CONFIGW * *)
?QueryConfig@SC_SERVICE@@QAEJPAPAU_QUERY_SERVICE_CONFIGW@@@Z
; public: class OS_SECURITY_DESCRIPTOR_CONTROL const * __thiscall OS_SECURITY_DESCRIPTOR::QueryControl(void)const 
?QueryControl@OS_SECURITY_DESCRIPTOR@@QBEPBVOS_SECURITY_DESCRIPTOR_CONTROL@@XZ
; public: struct _TRUSTED_CONTROLLERS_INFO const & __thiscall LSA_TRUSTED_DC_LIST::QueryControllerList(void)const 
?QueryControllerList@LSA_TRUSTED_DC_LIST@@QBEABU_TRUSTED_CONTROLLERS_INFO@@XZ
; public: long __thiscall LSA_TRUSTED_DOMAIN::QueryControllerList(class LSA_REF_DOMAIN_MEM *)const 
?QueryControllerList@LSA_TRUSTED_DOMAIN@@QBEJPAVLSA_REF_DOMAIN_MEM@@@Z
; public: unsigned int __thiscall ENUM_CALLER::QueryCount(void)const 
?QueryCount@ENUM_CALLER@@QBEIXZ
; protected: unsigned int __thiscall LM_ENUM_ITER::QueryCount(void)const 
?QueryCount@LM_ENUM_ITER@@IBEIXZ
; protected: unsigned int __thiscall LM_RESUME_ENUM_ITER::QueryCount(void)const 
?QueryCount@LM_RESUME_ENUM_ITER@@IBEIXZ
; public: int __thiscall LSA_TRUSTED_DC_LIST::QueryCount(void)
?QueryCount@LSA_TRUSTED_DC_LIST@@QAEHXZ
; public: unsigned long __thiscall NT_MEMORY::QueryCount(void)const 
?QueryCount@NT_MEMORY@@QBEKXZ
; protected: static long __stdcall NT_ACCOUNT_ENUM::QueryCountPreferences2(unsigned long *,unsigned long *,unsigned int,unsigned long,unsigned long,unsigned long)
?QueryCountPreferences2@NT_ACCOUNT_ENUM@@KGJPAK0IKKK@Z
; protected: virtual long __thiscall NT_ACCOUNT_ENUM::QueryCountPreferences(unsigned long *,unsigned long *,unsigned int,unsigned long,unsigned long,unsigned long)
?QueryCountPreferences@NT_ACCOUNT_ENUM@@MAEJPAK0IKKK@Z
; protected: unsigned long __thiscall OS_ACL_SUBJECT_ITER::QueryCurrentACE(void)const 
?QueryCurrentACE@OS_ACL_SUBJECT_ITER@@IBEKXZ
; public: long __thiscall LSA_POLICY::QueryCurrentUser(class NLS_STR *)const 
?QueryCurrentUser@LSA_POLICY@@QBEJPAVNLS_STR@@@Z
; public: unsigned int __thiscall SHARE_2::QueryCurrentUses(void)const 
?QueryCurrentUses@SHARE_2@@QBEIXZ
; public: long __thiscall OS_SECURITY_DESCRIPTOR::QueryDACL(int *,class OS_ACL * *,int *)const 
?QueryDACL@OS_SECURITY_DESCRIPTOR@@QBEJPAHPAPAVOS_ACL@@0@Z
; public: long __thiscall LSA_DOMAIN_INFO::QueryDcName(class NLS_STR *)
?QueryDcName@LSA_DOMAIN_INFO@@QAEJPAVNLS_STR@@@Z
; protected: enum LMO_DEVICE  __thiscall DEVICE::QueryDevType(void)const 
?QueryDevType@DEVICE@@IBE?AW4LMO_DEVICE@@XZ
; public: long __thiscall LOCATION::QueryDisplayName(class NLS_STR *)const 
?QueryDisplayName@LOCATION@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall LSA_PRIVILEGES_ENUM_OBJ::QueryDisplayName(class NLS_STR *,class LSA_POLICY const *)const 
?QueryDisplayName@LSA_PRIVILEGES_ENUM_OBJ@@QBEJPAVNLS_STR@@PBVLSA_POLICY@@@Z
; public: unsigned short const * __thiscall LOCATION::QueryDomain(void)const 
?QueryDomain@LOCATION@@QBEPBGXZ
; public: long __thiscall LSA_TRANSLATED_NAME_MEM::QueryDomainIndex(unsigned long)const 
?QueryDomainIndex@LSA_TRANSLATED_NAME_MEM@@QBEJK@Z
; public: unsigned short const * __thiscall BROWSE_DOMAIN_INFO::QueryDomainName(void)const 
?QueryDomainName@BROWSE_DOMAIN_INFO@@QBEPBGXZ
; public: unsigned long __thiscall BROWSE_DOMAIN_INFO::QueryDomainSources(void)const 
?QueryDomainSources@BROWSE_DOMAIN_INFO@@QBEKXZ
; public: long __thiscall NET_NAME::QueryDrive(class NLS_STR *)
?QueryDrive@NET_NAME@@QAEJPAVNLS_STR@@@Z
; public: unsigned long __thiscall USER_MODALS_3::QueryDuration(void)const 
?QueryDuration@USER_MODALS_3@@QBEKXZ
; public: long __thiscall BASE::QueryError(void)const 
?QueryError@BASE@@QBEJXZ
; public: long __thiscall LM_SERVICE::QueryExitCode(void)const 
?QueryExitCode@LM_SERVICE@@QBEJXZ
; public: long __thiscall NET_ACCESS_1::QueryFailingName(class NLS_STR *,enum PERMNAME_TYPE *)const 
?QueryFailingName@NET_ACCESS_1@@QBEJPAVNLS_STR@@PAW4PERMNAME_TYPE@@@Z
; public: int __thiscall LSA_TRANSLATED_SID_MEM::QueryFailingNameIndex(unsigned long *)
?QueryFailingNameIndex@LSA_TRANSLATED_SID_MEM@@QAEHPAK@Z
; public: unsigned long __thiscall LM_FILE::QueryFileId(void)const 
?QueryFileId@LM_FILE@@QBEKXZ
; public: unsigned long __thiscall USER_MODALS::QueryForceLogoff(void)const 
?QueryForceLogoff@USER_MODALS@@QBEKXZ
; public: unsigned short const * __thiscall USER_11::QueryFullName(void)const 
?QueryFullName@USER_11@@QBEPBGXZ
; public: long __thiscall LM_SERVICE::QueryFullStatus(enum LM_SERVICE_STATUS *,struct LM_SERVICE_OTHER_STATUS *)
?QueryFullStatus@LM_SERVICE@@QAEJPAW4LM_SERVICE_STATUS@@PAULM_SERVICE_OTHER_STATUS@@@Z
; public: long __thiscall OS_SECURITY_DESCRIPTOR::QueryGroup(int *,class OS_SID * *,int *)const 
?QueryGroup@OS_SECURITY_DESCRIPTOR@@QBEJPAHPAPAVOS_SID@@0@Z
; public: void * __thiscall LSA_OBJECT::QueryHandle(void)const 
?QueryHandle@LSA_OBJECT@@QBEPAXXZ
; public: void * __thiscall SAM_OBJECT::QueryHandle(void)const 
?QueryHandle@SAM_OBJECT@@QBEPAXXZ
; public: struct SC_HANDLE__ * __thiscall SERVICE_CONTROL::QueryHandle(void)const 
?QueryHandle@SERVICE_CONTROL@@QBEPAUSC_HANDLE__@@XZ
; public: unsigned short const * __thiscall USER_11::QueryHomeDir(void)const 
?QueryHomeDir@USER_11@@QBEPBGXZ
; public: unsigned short const * __thiscall USER_3::QueryHomedirDrive(void)const 
?QueryHomedirDrive@USER_3@@QBEPBGXZ
; public: unsigned char * __thiscall LOGON_HOURS_SETTING::QueryHoursBlock(void)const 
?QueryHoursBlock@LOGON_HOURS_SETTING@@QBEPAEXZ
; public: unsigned long __thiscall LM_SESSION_10::QueryIdleTime(void)const 
?QueryIdleTime@LM_SESSION_10@@QBEKXZ
; public: long __thiscall LSA_SECRET::QueryInfo(class NLS_STR *,class NLS_STR *,union _LARGE_INTEGER *,union _LARGE_INTEGER *)const 
?QueryInfo@LSA_SECRET@@QBEJPAVNLS_STR@@0PAT_LARGE_INTEGER@@1@Z
; private: long __thiscall LSA_TRUSTED_DC_LIST::QueryInfo(class NLS_STR const &,unsigned short const *)
?QueryInfo@LSA_TRUSTED_DC_LIST@@AAEJABVNLS_STR@@PBG@Z
; public: unsigned int __thiscall LM_ENUM::QueryInfoLevel(void)const 
?QueryInfoLevel@LM_ENUM@@QBEIXZ
; public: unsigned int __thiscall LM_RESUME_ENUM::QueryInfoLevel(void)const 
?QueryInfoLevel@LM_RESUME_ENUM@@QBEIXZ
; public: unsigned long __thiscall OS_DACL_SUBJECT_ITER::QueryInheritOnlyAccessMask(void)const 
?QueryInheritOnlyAccessMask@OS_DACL_SUBJECT_ITER@@QBEKXZ
; public: unsigned long __thiscall OS_SACL_SUBJECT_ITER::QueryInheritOnlyAuditAccessMask_F(void)const 
?QueryInheritOnlyAuditAccessMask_F@OS_SACL_SUBJECT_ITER@@QBEKXZ
; public: unsigned long __thiscall OS_SACL_SUBJECT_ITER::QueryInheritOnlyAuditAccessMask_S(void)const 
?QueryInheritOnlyAuditAccessMask_S@OS_SACL_SUBJECT_ITER@@QBEKXZ
; public: unsigned int __thiscall LM_RESUME_BUFFER::QueryItemCount(void)const 
?QueryItemCount@LM_RESUME_BUFFER@@QBEIXZ
; protected: virtual unsigned int __thiscall MEMBERSHIP_LM_OBJ::QueryItemSize(void)const 
?QueryItemSize@MEMBERSHIP_LM_OBJ@@MBEIXZ
; public: unsigned short const * __thiscall WKSTA_1::QueryLMRoot(void)const 
?QueryLMRoot@WKSTA_1@@QBEPBGXZ
; public: class LSA_POLICY * __thiscall ADMIN_AUTHORITY::QueryLSAPolicy(void)const 
?QueryLSAPolicy@ADMIN_AUTHORITY@@QBEPAVLSA_POLICY@@XZ
; public: long __thiscall NET_NAME::QueryLastComponent(class NLS_STR *)
?QueryLastComponent@NET_NAME@@QAEJPAVNLS_STR@@@Z
; public: long __thiscall OS_SID::QueryLastSubAuthority(unsigned long * *)const 
?QueryLastSubAuthority@OS_SID@@QBEJPAPAK@Z
; public: unsigned long __thiscall OS_SID::QueryLength(void)const 
?QueryLength@OS_SID@@QBEKXZ
; public: long __thiscall NET_NAME::QueryLocalDrive(class NLS_STR *)
?QueryLocalDrive@NET_NAME@@QAEJPAVNLS_STR@@@Z
; public: long __thiscall NET_NAME::QueryLocalPath(class NLS_STR *)
?QueryLocalPath@NET_NAME@@QAEJPAVNLS_STR@@@Z
; public: long __thiscall SC_MANAGER::QueryLockStatus(struct _QUERY_SERVICE_LOCK_STATUSW * *)
?QueryLockStatus@SC_MANAGER@@QAEJPAPAU_QUERY_SERVICE_LOCK_STATUSW@@@Z
; public: int __thiscall USER_2::QueryLockout(void)const 
?QueryLockout@USER_2@@QBEHXZ
; public: unsigned short const * __thiscall WKSTA_10::QueryLogonDomain(void)const 
?QueryLogonDomain@WKSTA_10@@QBEPBGXZ
; public: unsigned short const * __thiscall WKSTA_USER_1::QueryLogonDomain(void)const 
?QueryLogonDomain@WKSTA_USER_1@@QBEPBGXZ
; public: class LOGON_HOURS_SETTING const & __thiscall USER_11::QueryLogonHours(void)const 
?QueryLogonHours@USER_11@@QBEABVLOGON_HOURS_SETTING@@XZ
; public: unsigned short const * __thiscall WKSTA_1::QueryLogonServer(void)const 
?QueryLogonServer@WKSTA_1@@QBEPBGXZ
; public: unsigned short const * __thiscall WKSTA_USER_1::QueryLogonServer(void)const 
?QueryLogonServer@WKSTA_USER_1@@QBEPBGXZ
; public: unsigned short const * __thiscall WKSTA_10::QueryLogonUser(void)const 
?QueryLogonUser@WKSTA_10@@QBEPBGXZ
; public: struct _LUID  __thiscall OS_LUID::QueryLuid(void)const 
?QueryLuid@OS_LUID@@QBE?AU_LUID@@XZ
; public: unsigned int __thiscall SERVER1_ENUM_OBJ::QueryMajorVer(void)const 
?QueryMajorVer@SERVER1_ENUM_OBJ@@QBEIXZ
; public: unsigned int __thiscall SERVER_1::QueryMajorVer(void)const 
?QueryMajorVer@SERVER_1@@QBEIXZ
; public: unsigned int __thiscall WKSTA_10::QueryMajorVer(void)const 
?QueryMajorVer@WKSTA_10@@QBEIXZ
; public: unsigned long __thiscall USER_MODALS::QueryMaxPasswdAge(void)const 
?QueryMaxPasswdAge@USER_MODALS@@QBEKXZ
; public: unsigned int __thiscall SERVER_2::QueryMaxUsers(void)const 
?QueryMaxUsers@SERVER_2@@QBEIXZ
; public: unsigned int __thiscall SHARE_2::QueryMaxUses(void)const 
?QueryMaxUses@SHARE_2@@QBEIXZ
; public: unsigned long __thiscall USER_MODALS::QueryMinPasswdAge(void)const 
?QueryMinPasswdAge@USER_MODALS@@QBEKXZ
; public: unsigned int __thiscall USER_MODALS::QueryMinPasswdLen(void)const 
?QueryMinPasswdLen@USER_MODALS@@QBEIXZ
; public: unsigned int __thiscall SERVER1_ENUM_OBJ::QueryMinorVer(void)const 
?QueryMinorVer@SERVER1_ENUM_OBJ@@QBEIXZ
; public: unsigned int __thiscall SERVER_1::QueryMinorVer(void)const 
?QueryMinorVer@SERVER_1@@QBEIXZ
; public: unsigned int __thiscall WKSTA_10::QueryMinorVer(void)const 
?QueryMinorVer@WKSTA_10@@QBEIXZ
; public: long __thiscall LOCATION::QueryNOSVersion(unsigned int *,unsigned int *)
?QueryNOSVersion@LOCATION@@QAEJPAI0@Z
; public: virtual unsigned short const * __thiscall COMPUTER::QueryName(void)const 
?QueryName@COMPUTER@@UBEPBGXZ
; public: virtual unsigned short const * __thiscall DEVICE::QueryName(void)const 
?QueryName@DEVICE@@UBEPBGXZ
; public: unsigned short const * __thiscall DOMAIN0_ENUM_OBJ::QueryName(void)const 
?QueryName@DOMAIN0_ENUM_OBJ@@QBEPBGXZ
; public: virtual unsigned short const * __thiscall DOMAIN::QueryName(void)const 
?QueryName@DOMAIN@@UBEPBGXZ
; public: unsigned short const * __thiscall GROUP0_ENUM_OBJ::QueryName(void)const 
?QueryName@GROUP0_ENUM_OBJ@@QBEPBGXZ
; public: virtual unsigned short const * __thiscall GROUP::QueryName(void)const 
?QueryName@GROUP@@UBEPBGXZ
; public: virtual unsigned short const * __thiscall GROUP_MEMB::QueryName(void)const 
?QueryName@GROUP_MEMB@@UBEPBGXZ
; public: unsigned short const * __thiscall LM_SERVICE::QueryName(void)const 
?QueryName@LM_SERVICE@@QBEPBGXZ
; public: virtual unsigned short const * __thiscall LM_SESSION::QueryName(void)const 
?QueryName@LM_SESSION@@UBEPBGXZ
; public: unsigned short const * __thiscall LOCATION::QueryName(void)const 
?QueryName@LOCATION@@QBEPBGXZ
; public: virtual unsigned short const * __thiscall LSA_ACCOUNT::QueryName(void)const 
?QueryName@LSA_ACCOUNT@@UBEPBGXZ
; public: long __thiscall LSA_ACCT_DOM_INFO_MEM::QueryName(class NLS_STR *)const 
?QueryName@LSA_ACCT_DOM_INFO_MEM@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall LSA_PRIMARY_DOM_INFO_MEM::QueryName(class NLS_STR *)const 
?QueryName@LSA_PRIMARY_DOM_INFO_MEM@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall LSA_REF_DOMAIN_MEM::QueryName(unsigned long,class NLS_STR *)const 
?QueryName@LSA_REF_DOMAIN_MEM@@QBEJKPAVNLS_STR@@@Z
; public: long __thiscall LSA_TRANSLATED_NAME_MEM::QueryName(unsigned long,class NLS_STR *)const 
?QueryName@LSA_TRANSLATED_NAME_MEM@@QBEJKPAVNLS_STR@@@Z
; public: long __thiscall LSA_TRUST_INFO_MEM::QueryName(unsigned long,class NLS_STR *)const 
?QueryName@LSA_TRUST_INFO_MEM@@QBEJKPAVNLS_STR@@@Z
; public: virtual unsigned short const * __thiscall NET_ACCESS::QueryName(void)const 
?QueryName@NET_ACCESS@@UBEPBGXZ
; public: virtual unsigned short const * __thiscall NEW_LM_OBJ::QueryName(void)const 
?QueryName@NEW_LM_OBJ@@UBEPBGXZ
; public: long __thiscall OS_SID::QueryName(class NLS_STR *,unsigned short const *,void *)const 
?QueryName@OS_SID@@QBEJPAVNLS_STR@@PBGPAX@Z
; public: unsigned short const * __thiscall SERVER1_ENUM_OBJ::QueryName(void)const 
?QueryName@SERVER1_ENUM_OBJ@@QBEPBGXZ
; public: virtual unsigned short const * __thiscall SERVER_0::QueryName(void)const 
?QueryName@SERVER_0@@UBEPBGXZ
; public: virtual unsigned short const * __thiscall SHARE::QueryName(void)const 
?QueryName@SHARE@@UBEPBGXZ
; public: unsigned short const * __thiscall USER0_ENUM_OBJ::QueryName(void)const 
?QueryName@USER0_ENUM_OBJ@@QBEPBGXZ
; public: virtual unsigned short const * __thiscall USER::QueryName(void)const 
?QueryName@USER@@UBEPBGXZ
; public: virtual unsigned short const * __thiscall USER_MEMB::QueryName(void)const 
?QueryName@USER_MEMB@@UBEPBGXZ
; public: virtual unsigned short const * __thiscall USER_MODALS::QueryName(void)const 
?QueryName@USER_MODALS@@UBEPBGXZ
; public: virtual unsigned short const * __thiscall USER_MODALS_3::QueryName(void)const 
?QueryName@USER_MODALS_3@@UBEPBGXZ
; public: unsigned long __thiscall OS_DACL_SUBJECT_ITER::QueryNewContainerAccessMask(void)const 
?QueryNewContainerAccessMask@OS_DACL_SUBJECT_ITER@@QBEKXZ
; public: unsigned long __thiscall OS_SACL_SUBJECT_ITER::QueryNewContainerAuditAccessMask_F(void)const 
?QueryNewContainerAuditAccessMask_F@OS_SACL_SUBJECT_ITER@@QBEKXZ
; public: unsigned long __thiscall OS_SACL_SUBJECT_ITER::QueryNewContainerAuditAccessMask_S(void)const 
?QueryNewContainerAuditAccessMask_S@OS_SACL_SUBJECT_ITER@@QBEKXZ
; public: unsigned long __thiscall OS_DACL_SUBJECT_ITER::QueryNewObjectAccessMask(void)const 
?QueryNewObjectAccessMask@OS_DACL_SUBJECT_ITER@@QBEKXZ
; public: unsigned long __thiscall OS_SACL_SUBJECT_ITER::QueryNewObjectAuditAccessMask_F(void)const 
?QueryNewObjectAuditAccessMask_F@OS_SACL_SUBJECT_ITER@@QBEKXZ
; public: unsigned long __thiscall OS_SACL_SUBJECT_ITER::QueryNewObjectAuditAccessMask_S(void)const 
?QueryNewObjectAuditAccessMask_S@OS_SACL_SUBJECT_ITER@@QBEKXZ
; public: int __thiscall SAM_PSWD_DOM_INFO_MEM::QueryNoAnonChange(void)
?QueryNoAnonChange@SAM_PSWD_DOM_INFO_MEM@@QAEHXZ
; public: int __thiscall USER_2::QueryNoPasswordExpire(void)const 
?QueryNoPasswordExpire@USER_2@@QBEHXZ
; public: unsigned int __thiscall LM_FILE_3::QueryNumLock(void)const 
?QueryNumLock@LM_FILE_3@@QBEIXZ
; public: unsigned long __thiscall FILE3_ENUM_OBJ::QueryNumLocks(void)const 
?QueryNumLocks@FILE3_ENUM_OBJ@@QBEKXZ
; public: unsigned int __thiscall LM_SESSION_1::QueryNumOpens(void)const 
?QueryNumOpens@LM_SESSION_1@@QBEIXZ
; public: unsigned long __thiscall OS_PRIVILEGE_SET::QueryNumberOfPrivileges(void)const 
?QueryNumberOfPrivileges@OS_PRIVILEGE_SET@@QBEKXZ
; public: unsigned long __thiscall USER_MODALS_3::QueryObservation(void)const 
?QueryObservation@USER_MODALS_3@@QBEKXZ
; public: class STRLIST * __thiscall WKSTA_10::QueryOtherDomains(void)const 
?QueryOtherDomains@WKSTA_10@@QBEPAVSTRLIST@@XZ
; public: unsigned short const * __thiscall WKSTA_USER_1::QueryOtherDomains(void)const 
?QueryOtherDomains@WKSTA_USER_1@@QBEPBGXZ
; public: long __thiscall OS_SECURITY_DESCRIPTOR::QueryOwner(int *,class OS_SID * *,int *)const 
?QueryOwner@OS_SECURITY_DESCRIPTOR@@QBEJPAHPAPAVOS_SID@@0@Z
; public: unsigned short const * __thiscall DOMAIN::QueryPDC(void)const 
?QueryPDC@DOMAIN@@QBEPBGXZ
; public: void * __thiscall LSA_ACCT_DOM_INFO_MEM::QueryPSID(void)const 
?QueryPSID@LSA_ACCT_DOM_INFO_MEM@@QBEPAXXZ
; public: void * __thiscall LSA_DOMAIN_INFO::QueryPSID(void)const 
?QueryPSID@LSA_DOMAIN_INFO@@QBEQAXXZ
; public: void * __thiscall LSA_PRIMARY_DOM_INFO_MEM::QueryPSID(void)const 
?QueryPSID@LSA_PRIMARY_DOM_INFO_MEM@@QBEPAXXZ
; public: void * __thiscall LSA_REF_DOMAIN_MEM::QueryPSID(unsigned long)const 
?QueryPSID@LSA_REF_DOMAIN_MEM@@QBEPAXK@Z
; public: void * __thiscall LSA_TRUST_INFO_MEM::QueryPSID(unsigned long)const 
?QueryPSID@LSA_TRUST_INFO_MEM@@QBEPAXK@Z
; public: void * __thiscall OS_SID::QueryPSID(void)const 
?QueryPSID@OS_SID@@QBEPAXXZ
; public: void * __thiscall SAM_DOMAIN::QueryPSID(void)const 
?QueryPSID@SAM_DOMAIN@@QBEPAXXZ
; public: unsigned short const * __thiscall USER_11::QueryParms(void)const 
?QueryParms@USER_11@@QBEPBGXZ
; public: unsigned int __thiscall USER_MODALS::QueryPasswdHistLen(void)const 
?QueryPasswdHistLen@USER_MODALS@@QBEIXZ
; public: unsigned short const * __thiscall SHARE_2::QueryPassword(void)const 
?QueryPassword@SHARE_2@@QBEPBGXZ
; public: unsigned short const * __thiscall USER_2::QueryPassword(void)const 
?QueryPassword@USER_2@@QBEPBGXZ
; public: unsigned long __thiscall USER_3::QueryPasswordExpired(void)const 
?QueryPasswordExpired@USER_3@@QBEKXZ
; public: unsigned short const * __thiscall SHARE_2::QueryPath(void)const 
?QueryPath@SHARE_2@@QBEPBGXZ
; public: unsigned short const * __thiscall FILE3_ENUM_OBJ::QueryPathName(void)const 
?QueryPathName@FILE3_ENUM_OBJ@@QBEPBGXZ
; public: unsigned short const * __thiscall LM_FILE_3::QueryPathname(void)const 
?QueryPathname@LM_FILE_3@@QBEPBGXZ
; public: unsigned short const * __thiscall NLS_STR::QueryPch(void)const 
?QueryPch@NLS_STR@@QBEPBGXZ
; public: unsigned int __thiscall NET_ACCESS_1::QueryPerm(unsigned short const *,enum PERMNAME_TYPE)const 
?QueryPerm@NET_ACCESS_1@@QBEIPBGW4PERMNAME_TYPE@@@Z
; public: unsigned int __thiscall LM_FILE_3::QueryPermission(void)const 
?QueryPermission@LM_FILE_3@@QBEIXZ
; public: unsigned int __thiscall SHARE_2::QueryPermissions(void)const 
?QueryPermissions@SHARE_2@@QBEIXZ
; public: long __thiscall LSA_TRUSTED_DOMAIN::QueryPosixOffset(unsigned long *)const 
?QueryPosixOffset@LSA_TRUSTED_DOMAIN@@QBEJPAK@Z
; public: long __thiscall LSA_POLICY::QueryPrimaryBrowserGroup(class NLS_STR *)const 
?QueryPrimaryBrowserGroup@LSA_POLICY@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall LSA_POLICY::QueryPrimaryDomainName(class NLS_STR *)const 
?QueryPrimaryDomainName@LSA_POLICY@@QBEJPAVNLS_STR@@@Z
; public: unsigned long __thiscall USER_3::QueryPrimaryGroupId(void)const 
?QueryPrimaryGroupId@USER_3@@QBEKXZ
; public: virtual unsigned int __thiscall LOCAL_USER::QueryPriv(void)const 
?QueryPriv@LOCAL_USER@@UBEIXZ
; public: virtual unsigned int __thiscall USER_11::QueryPriv(void)const 
?QueryPriv@USER_11@@UBEIXZ
; public: struct _PRIVILEGE_SET * __thiscall OS_PRIVILEGE_SET::QueryPrivSet(void)const 
?QueryPrivSet@OS_PRIVILEGE_SET@@QBEPAU_PRIVILEGE_SET@@XZ
; public: class OS_LUID_AND_ATTRIBUTES const * __thiscall OS_PRIVILEGE_SET::QueryPrivilege(long)
?QueryPrivilege@OS_PRIVILEGE_SET@@QAEPBVOS_LUID_AND_ATTRIBUTES@@J@Z
; public: long __thiscall LSA_ACCOUNT::QueryPrivilegeEnumIter(class LSA_ACCOUNT_PRIVILEGE_ENUM_ITER * *)
?QueryPrivilegeEnumIter@LSA_ACCOUNT@@QAEJPAPAVLSA_ACCOUNT_PRIVILEGE_ENUM_ITER@@@Z
; public: static long __stdcall LSA_POLICY::QueryProductType(enum LSPL_PROD_TYPE *)
?QueryProductType@LSA_POLICY@@SGJPAW4LSPL_PROD_TYPE@@@Z
; public: unsigned short const * __thiscall USER_3::QueryProfile(void)const 
?QueryProfile@USER_3@@QBEPBGXZ
; protected: unsigned char * __thiscall LM_ENUM::QueryPtr(void)const 
?QueryPtr@LM_ENUM@@IBEPAEXZ
; public: struct _POLICY_ACCOUNT_DOMAIN_INFO const * __thiscall LSA_ACCT_DOM_INFO_MEM::QueryPtr(void)const 
?QueryPtr@LSA_ACCT_DOM_INFO_MEM@@QBEPBU_POLICY_ACCOUNT_DOMAIN_INFO@@XZ
; public: struct _POLICY_AUDIT_EVENTS_INFO * __thiscall LSA_AUDIT_EVENT_INFO_MEM::QueryPtr(void)const 
?QueryPtr@LSA_AUDIT_EVENT_INFO_MEM@@QBEPAU_POLICY_AUDIT_EVENTS_INFO@@XZ
; public: struct _POLICY_PRIMARY_DOMAIN_INFO const * __thiscall LSA_PRIMARY_DOM_INFO_MEM::QueryPtr(void)const 
?QueryPtr@LSA_PRIMARY_DOM_INFO_MEM@@QBEPBU_POLICY_PRIMARY_DOMAIN_INFO@@XZ
; private: struct _LSA_TRUST_INFORMATION const * __thiscall LSA_REF_DOMAIN_MEM::QueryPtr(void)const 
?QueryPtr@LSA_REF_DOMAIN_MEM@@ABEPBU_LSA_TRUST_INFORMATION@@XZ
; public: struct _POLICY_LSA_SERVER_ROLE_INFO const * __thiscall LSA_SERVER_ROLE_INFO_MEM::QueryPtr(void)const 
?QueryPtr@LSA_SERVER_ROLE_INFO_MEM@@QBEPBU_POLICY_LSA_SERVER_ROLE_INFO@@XZ
; private: struct _LSA_TRANSLATED_NAME const * __thiscall LSA_TRANSLATED_NAME_MEM::QueryPtr(void)const 
?QueryPtr@LSA_TRANSLATED_NAME_MEM@@ABEPBU_LSA_TRANSLATED_NAME@@XZ
; private: struct _LSA_TRANSLATED_SID const * __thiscall LSA_TRANSLATED_SID_MEM::QueryPtr(void)const 
?QueryPtr@LSA_TRANSLATED_SID_MEM@@ABEPBU_LSA_TRANSLATED_SID@@XZ
; public: struct _LSA_TRUST_INFORMATION const * __thiscall LSA_TRUST_INFO_MEM::QueryPtr(void)const 
?QueryPtr@LSA_TRUST_INFO_MEM@@QBEPBU_LSA_TRUST_INFORMATION@@XZ
; protected: void * __thiscall OS_OBJECT_WITH_DATA::QueryPtr(void)const 
?QueryPtr@OS_OBJECT_WITH_DATA@@IBEPAXXZ
; public: struct _DOMAIN_PASSWORD_INFORMATION const * __thiscall SAM_PSWD_DOM_INFO_MEM::QueryPtr(void)const 
?QueryPtr@SAM_PSWD_DOM_INFO_MEM@@QBEPBU_DOMAIN_PASSWORD_INFORMATION@@XZ
; public: struct _SAM_RID_ENUMERATION const * __thiscall SAM_RID_ENUMERATION_MEM::QueryPtr(void)const 
?QueryPtr@SAM_RID_ENUMERATION_MEM@@QBEPBU_SAM_RID_ENUMERATION@@XZ
; public: unsigned long __thiscall SAM_ALIAS::QueryRID(void)
?QueryRID@SAM_ALIAS@@QAEKXZ
; public: long __thiscall OS_SID::QueryRawID(class NLS_STR *)const 
?QueryRawID@OS_SID@@QBEJPAVNLS_STR@@@Z
; public: long __thiscall NET_NAME::QueryRelativePath(class NLS_STR *)
?QueryRelativePath@NET_NAME@@QAEJPAVNLS_STR@@@Z
; public: unsigned short const * __thiscall DEVICE::QueryRemoteName(void)const 
?QueryRemoteName@DEVICE@@QBEPBGXZ
; public: unsigned int __thiscall DEVICE::QueryRemoteType(void)const 
?QueryRemoteType@DEVICE@@QBEIXZ
; private: unsigned int __thiscall NET_ACCESS_1::QueryRequiredSpace(unsigned int)const 
?QueryRequiredSpace@NET_ACCESS_1@@ABEII@Z
; public: unsigned int __thiscall SHARE_1::QueryResourceType(void)const 
?QueryResourceType@SHARE_1@@QBEIXZ
; public: static unsigned long __stdcall OS_ACE::QueryRevision(void)
?QueryRevision@OS_ACE@@SGKXZ
; public: unsigned long const  __thiscall ALIAS_ENUM_OBJ::QueryRid(void)const 
?QueryRid@ALIAS_ENUM_OBJ@@QBE?BKXZ
; public: long __thiscall OS_SECURITY_DESCRIPTOR::QuerySACL(int *,class OS_ACL * *,int *)const 
?QuerySACL@OS_SECURITY_DESCRIPTOR@@QBEJPAHPAPAVOS_ACL@@0@Z
; public: long __thiscall OS_ACE::QuerySID(class OS_SID * *)const 
?QuerySID@OS_ACE@@QBEJPAPAVOS_SID@@@Z
; public: class OS_SID const * __thiscall OS_ACL_SUBJECT_ITER::QuerySID(void)const 
?QuerySID@OS_ACL_SUBJECT_ITER@@QBEPBVOS_SID@@XZ
; protected: void * __thiscall OS_ACE::QuerySIDMemory(void)const 
?QuerySIDMemory@OS_ACE@@IBEPAXXZ
; public: class SAM_SERVER * __thiscall ADMIN_AUTHORITY::QuerySamServer(void)const 
?QuerySamServer@ADMIN_AUTHORITY@@QBEPAVSAM_SERVER@@XZ
; public: unsigned short const * __thiscall USER_2::QueryScriptPath(void)const 
?QueryScriptPath@USER_2@@QBEPBGXZ
; public: long __thiscall SC_SERVICE::QuerySecurity(unsigned long,void * *)
?QuerySecurity@SC_SERVICE@@QAEJKPAPAX@Z
; public: unsigned int __thiscall SERVER_2::QuerySecurity(void)const 
?QuerySecurity@SERVER_2@@QBEIXZ
; public: unsigned short const * __thiscall DEVICE::QueryServer(void)const 
?QueryServer@DEVICE@@QBEPBGXZ
; public: unsigned short const * __thiscall LM_FILE::QueryServer(void)const 
?QueryServer@LM_FILE@@QBEPBGXZ
; public: unsigned short const * __thiscall LM_SESSION::QueryServer(void)const 
?QueryServer@LM_SESSION@@QBEPBGXZ
; public: unsigned short const * __thiscall LOCATION::QueryServer(void)const 
?QueryServer@LOCATION@@QBEPBGXZ
; public: unsigned short const * __thiscall LOC_LM_ENUM::QueryServer(void)const 
?QueryServer@LOC_LM_ENUM@@QBEPBGXZ
; protected: unsigned short const * __thiscall LOC_LM_OBJ::QueryServer(void)const 
?QueryServer@LOC_LM_OBJ@@IBEPBGXZ
; public: unsigned short const * __thiscall LOC_LM_RESUME_ENUM::QueryServer(void)const 
?QueryServer@LOC_LM_RESUME_ENUM@@QBEPBGXZ
; public: unsigned short const * __thiscall SHARE::QueryServer(void)const 
?QueryServer@SHARE@@QBEPBGXZ
; public: unsigned short const * __thiscall LM_SERVICE::QueryServerName(void)const 
?QueryServerName@LM_SERVICE@@QBEPBGXZ
; public: unsigned short const * __thiscall NET_ACCESS::QueryServerName(void)const 
?QueryServerName@NET_ACCESS@@QBEPBGXZ
; public: long __thiscall NET_NAME::QueryServerShare(class NLS_STR *)
?QueryServerShare@NET_NAME@@QAEJPAVNLS_STR@@@Z
; public: unsigned long __thiscall SERVER1_ENUM_OBJ::QueryServerType(void)const 
?QueryServerType@SERVER1_ENUM_OBJ@@QBEKXZ
; public: unsigned long __thiscall SERVER_1::QueryServerType(void)const 
?QueryServerType@SERVER_1@@QBEKXZ
; public: long __thiscall SC_MANAGER::QueryServiceDisplayName(unsigned short const *,class NLS_STR *)
?QueryServiceDisplayName@SC_MANAGER@@QAEJPBGPAVNLS_STR@@@Z
; public: long __thiscall SC_MANAGER::QueryServiceKeyName(unsigned short const *,class NLS_STR *)
?QueryServiceKeyName@SC_MANAGER@@QAEJPBGPAVNLS_STR@@@Z
; public: long __thiscall NET_NAME::QueryShare(class NLS_STR *)
?QueryShare@NET_NAME@@QAEJPAVNLS_STR@@@Z
; public: void * __thiscall OS_SID::QuerySid(void)const 
?QuerySid@OS_SID@@QBEPAXXZ
; public: unsigned short __thiscall OS_ACE::QuerySize(void)const 
?QuerySize@OS_ACE@@QBEGXZ
; public: long __thiscall OS_ACL::QuerySizeInformation(struct _ACL_SIZE_INFORMATION *)const 
?QuerySizeInformation@OS_ACL@@QBEJPAU_ACL_SIZE_INFORMATION@@@Z
; public: enum LMO_DEV_STATE  __thiscall DEVICE::QueryState(void)const 
?QueryState@DEVICE@@QBE?AW4LMO_DEV_STATE@@XZ
; public: unsigned int __thiscall DEVICE::QueryStatus(void)const 
?QueryStatus@DEVICE@@QBEIXZ
; public: enum LM_SERVICE_STATUS  __thiscall LM_SERVICE::QueryStatus(long *)
?QueryStatus@LM_SERVICE@@QAE?AW4LM_SERVICE_STATUS@@PAJ@Z
; public: long __thiscall SC_SERVICE::QueryStatus(struct _SERVICE_STATUS *)
?QueryStatus@SC_SERVICE@@QAEJPAU_SERVICE_STATUS@@@Z
; public: long __thiscall OS_SID::QuerySubAuthority(unsigned char,unsigned long * *)const 
?QuerySubAuthority@OS_SID@@QBEJEPAPAK@Z
; public: long __thiscall OS_SID::QuerySubAuthorityCount(unsigned char * *)const 
?QuerySubAuthorityCount@OS_SID@@QBEJPAPAE@Z
; public: static long __stdcall NT_ACCOUNTS_UTILITY::QuerySystemSid(enum UI_SystemSid,class OS_SID *,unsigned short const *)
?QuerySystemSid@NT_ACCOUNTS_UTILITY@@SGJW4UI_SystemSid@@PAVOS_SID@@PBG@Z
; public: unsigned int __thiscall NLS_STR::QueryTextLength(void)const 
?QueryTextLength@NLS_STR@@QBEIXZ
; public: unsigned long __thiscall USER_MODALS_3::QueryThreshold(void)const 
?QueryThreshold@USER_MODALS_3@@QBEKXZ
; public: unsigned long __thiscall LM_SESSION_10::QueryTime(void)const 
?QueryTime@LM_SESSION_10@@QBEKXZ
; protected: unsigned long __thiscall OS_ACL_SUBJECT_ITER::QueryTotalAceCount(void)const 
?QueryTotalAceCount@OS_ACL_SUBJECT_ITER@@IBEKXZ
; public: unsigned int __thiscall LM_RESUME_ENUM::QueryTotalItemCount(void)const 
?QueryTotalItemCount@LM_RESUME_ENUM@@QBEIXZ
; public: unsigned int __thiscall DEVICE::QueryType(void)const 
?QueryType@DEVICE@@QBEIXZ
; public: unsigned char __thiscall OS_ACE::QueryType(void)const 
?QueryType@OS_ACE@@QBEEXZ
; public: long __thiscall NET_NAME::QueryUNCPath(class NLS_STR *)
?QueryUNCPath@NET_NAME@@QAEJPAVNLS_STR@@@Z
; public: struct _UNICODE_STRING const * __thiscall NT_MACHINE_ENUM_OBJ::QueryUnicodeMachine(void)const 
?QueryUnicodeMachine@NT_MACHINE_ENUM_OBJ@@QBEPBU_UNICODE_STRING@@XZ
; public: struct _UNICODE_STRING const * __thiscall LSA_ACCT_DOM_INFO_MEM::QueryUnicodeName(void)const 
?QueryUnicodeName@LSA_ACCT_DOM_INFO_MEM@@QBEPBU_UNICODE_STRING@@XZ
; public: struct _UNICODE_STRING const * __thiscall LSA_PRIMARY_DOM_INFO_MEM::QueryUnicodeName(void)const 
?QueryUnicodeName@LSA_PRIMARY_DOM_INFO_MEM@@QBEPBU_UNICODE_STRING@@XZ
; private: struct _UNICODE_STRING const * __thiscall LSA_REF_DOMAIN_MEM::QueryUnicodeName(unsigned long)const 
?QueryUnicodeName@LSA_REF_DOMAIN_MEM@@ABEPBU_UNICODE_STRING@@K@Z
; private: struct _UNICODE_STRING const * __thiscall LSA_TRANSLATED_NAME_MEM::QueryUnicodeName(unsigned long)const 
?QueryUnicodeName@LSA_TRANSLATED_NAME_MEM@@ABEPBU_UNICODE_STRING@@K@Z
; public: struct _UNICODE_STRING const * __thiscall LSA_TRUST_INFO_MEM::QueryUnicodeName(unsigned long)const 
?QueryUnicodeName@LSA_TRUST_INFO_MEM@@QBEPBU_UNICODE_STRING@@K@Z
; public: struct _UNICODE_STRING const * __thiscall SAM_USER_ENUM_OBJ::QueryUnicodeUserName(void)const 
?QueryUnicodeUserName@SAM_USER_ENUM_OBJ@@QBEPBU_UNICODE_STRING@@XZ
; public: unsigned int __thiscall LOGON_HOURS_SETTING::QueryUnitsPerWeek(void)const 
?QueryUnitsPerWeek@LOGON_HOURS_SETTING@@QBEIXZ
; private: struct _DOMAIN_PASSWORD_INFORMATION * __thiscall SAM_PSWD_DOM_INFO_MEM::QueryUpdatePtr(void)const 
?QueryUpdatePtr@SAM_PSWD_DOM_INFO_MEM@@ABEPAU_DOMAIN_PASSWORD_INFORMATION@@XZ
; public: enum _SID_NAME_USE  __thiscall LSA_TRANSLATED_NAME_MEM::QueryUse(unsigned long)const 
?QueryUse@LSA_TRANSLATED_NAME_MEM@@QBE?AW4_SID_NAME_USE@@K@Z
; public: int __thiscall USER_2::QueryUserCantChangePass(void)const 
?QueryUserCantChangePass@USER_2@@QBEHXZ
; public: unsigned short const * __thiscall USER_11::QueryUserComment(void)const 
?QueryUserComment@USER_11@@QBEPBGXZ
; protected: int __thiscall USER_2::QueryUserFlag(unsigned int)const 
?QueryUserFlag@USER_2@@IBEHI@Z
; public: unsigned long __thiscall LM_SESSION_1::QueryUserFlags(void)const 
?QueryUserFlags@LM_SESSION_1@@QBEKXZ
; public: unsigned int __thiscall USER_2::QueryUserFlags(void)const 
?QueryUserFlags@USER_2@@QBEIXZ
; public: unsigned long __thiscall USER_3::QueryUserId(void)const 
?QueryUserId@USER_3@@QBEKXZ
; public: long __thiscall SAM_USER_ENUM_OBJ::QueryUserName(class NLS_STR *)const 
?QueryUserName@SAM_USER_ENUM_OBJ@@QBEJPAVNLS_STR@@@Z
; public: unsigned short const * __thiscall WKSTA_USER_1::QueryUserName(void)const 
?QueryUserName@WKSTA_USER_1@@QBEPBGXZ
; public: int __thiscall USER_2::QueryUserPassRequired(void)const 
?QueryUserPassRequired@USER_2@@QBEHXZ
; public: unsigned short const * __thiscall LM_FILE_3::QueryUsername(void)const 
?QueryUsername@LM_FILE_3@@QBEPBGXZ
; public: unsigned short const * __thiscall LM_SESSION_10::QueryUsername(void)const 
?QueryUsername@LM_SESSION_10@@QBEPBGXZ
; public: long __thiscall LM_CONFIG::QueryValue(class NLS_STR *,unsigned short const *)
?QueryValue@LM_CONFIG@@QAEJPAVNLS_STR@@PBG@Z
; public: unsigned short const * __thiscall WKSTA_10::QueryWkstaDomain(void)const 
?QueryWkstaDomain@WKSTA_10@@QBEPBGXZ
; public: unsigned short const * __thiscall USER_11::QueryWorkstations(void)const 
?QueryWorkstations@USER_11@@QBEPBGXZ
; private: void __thiscall LM_ENUM::RegisterIter(void)
?RegisterIter@LM_ENUM@@AAEXXZ
; private: void __thiscall LM_RESUME_ENUM::RegisterIter(void)
?RegisterIter@LM_RESUME_ENUM@@AAEXXZ
; public: class NLS_STR * __thiscall SLIST_OF_NLS_STR::Remove(class ITER_SL_NLS_STR &)
?Remove@SLIST_OF_NLS_STR@@QAEPAVNLS_STR@@AAVITER_SL_NLS_STR@@@Z
; public: long __thiscall SAM_ALIAS::RemoveMember(void *)
?RemoveMember@SAM_ALIAS@@QAEJPAX@Z
; public: long __thiscall SAM_GROUP::RemoveMember(unsigned long)
?RemoveMember@SAM_GROUP@@QAEJK@Z
; public: long __thiscall SAM_DOMAIN::RemoveMemberFromAliases(void *)
?RemoveMemberFromAliases@SAM_DOMAIN@@QAEJPAX@Z
; public: long __thiscall SAM_ALIAS::RemoveMembers(void * *,unsigned int)
?RemoveMembers@SAM_ALIAS@@QAEJPAPAXI@Z
; public: long __thiscall SAM_GROUP::RemoveMembers(unsigned long *,unsigned int)
?RemoveMembers@SAM_GROUP@@QAEJPAKI@Z
; public: long __thiscall OS_PRIVILEGE_SET::RemovePrivilege(long)
?RemovePrivilege@OS_PRIVILEGE_SET@@QAEJJ@Z
; public: long __thiscall OS_PRIVILEGE_SET::RemovePrivilege(struct _LUID)
?RemovePrivilege@OS_PRIVILEGE_SET@@QAEJU_LUID@@@Z
; public: long __thiscall USER::Rename(unsigned short const *)
?Rename@USER@@QAEJPBG@Z
; public: long __thiscall ADMIN_AUTHORITY::ReplaceAccountDomain(unsigned long)
?ReplaceAccountDomain@ADMIN_AUTHORITY@@QAEJK@Z
; public: long __thiscall ADMIN_AUTHORITY::ReplaceBuiltinDomain(unsigned long)
?ReplaceBuiltinDomain@ADMIN_AUTHORITY@@QAEJK@Z
; public: long __thiscall ADMIN_AUTHORITY::ReplaceLSAPolicy(unsigned long)
?ReplaceLSAPolicy@ADMIN_AUTHORITY@@QAEJK@Z
; public: long __thiscall ADMIN_AUTHORITY::ReplaceSamServer(unsigned long)
?ReplaceSamServer@ADMIN_AUTHORITY@@QAEJK@Z
; protected: void __thiscall BASE::ReportError(long)
?ReportError@BASE@@IAEXJ@Z
; protected: void __thiscall NEW_LM_OBJ::ReportError(long)
?ReportError@NEW_LM_OBJ@@IAEXJ@Z
; public: void __thiscall BROWSE_DOMAIN_ENUM::Reset(void)
?Reset@BROWSE_DOMAIN_ENUM@@QAEXXZ
; public: void __thiscall OS_ACL_SUBJECT_ITER::Reset(void)
?Reset@OS_ACL_SUBJECT_ITER@@QAEXXZ
; protected: void __thiscall LSA_OBJECT::ResetHandle(void)
?ResetHandle@LSA_OBJECT@@IAEXXZ
; protected: void __thiscall SAM_OBJECT::ResetHandle(void)
?ResetHandle@SAM_OBJECT@@IAEXXZ
; protected: long __thiscall OS_OBJECT_WITH_DATA::Resize(unsigned int)
?Resize@OS_OBJECT_WITH_DATA@@IAEJI@Z
; protected: long __thiscall NEW_LM_OBJ::ResizeBuffer(unsigned int)
?ResizeBuffer@NEW_LM_OBJ@@IAEJI@Z
; public: long __thiscall LM_MESSAGE::SendBuffer(unsigned short const *,unsigned short const *,unsigned int)
?SendBuffer@LM_MESSAGE@@QAEJPBG0I@Z
; public: long __thiscall LM_MESSAGE::SendBuffer(unsigned short const *,class BUFFER const &)
?SendBuffer@LM_MESSAGE@@QAEJPBGABVBUFFER@@@Z
; public: long __thiscall LOCATION::Set(class LOCATION const &)
?Set@LOCATION@@QAEJABV1@@Z
; public: virtual void __thiscall LSA_MEMORY::Set(void *,unsigned long)
?Set@LSA_MEMORY@@UAEXPAXK@Z
; public: virtual void __thiscall NT_MEMORY::Set(void *,unsigned long)
?Set@NT_MEMORY@@UAEXPAXK@Z
; public: virtual void __thiscall SAM_MEMORY::Set(void *,unsigned long)
?Set@SAM_MEMORY@@UAEXPAXK@Z
; private: long __thiscall NET_NAME::SetABSPath(unsigned short const *)
?SetABSPath@NET_NAME@@AAEJPBG@Z
; public: void __thiscall OS_ACE::SetAccessMask(unsigned long)
?SetAccessMask@OS_ACE@@QAEXK@Z
; public: long __thiscall USER_2::SetAccountDisabled(int)
?SetAccountDisabled@USER_2@@QAEJH@Z
; public: long __thiscall LSA_POLICY::SetAccountDomain(class LSA_ACCT_DOM_INFO_MEM const *)
?SetAccountDomain@LSA_POLICY@@QAEJPBVLSA_ACCT_DOM_INFO_MEM@@@Z
; public: long __thiscall LSA_POLICY::SetAccountDomainName(class NLS_STR const *,void * const *)
?SetAccountDomainName@LSA_POLICY@@QAEJPBVNLS_STR@@PBQAX@Z
; public: long __thiscall USER_2::SetAccountExpires(long)
?SetAccountExpires@USER_2@@QAEJJ@Z
; public: long __thiscall USER_3::SetAccountType(enum _ACCOUNT_TYPE)
?SetAccountType@USER_3@@QAEJW4_ACCOUNT_TYPE@@@Z
; protected: void __thiscall SHARE_1::SetAdminOnly(int)
?SetAdminOnly@SHARE_1@@IAEXH@Z
; public: long __thiscall LSA_POLICY::SetAuditEventInfo(class LSA_AUDIT_EVENT_INFO_MEM *)
?SetAuditEventInfo@LSA_POLICY@@QAEJPAVLSA_AUDIT_EVENT_INFO_MEM@@@Z
; public: long __thiscall NET_ACCESS_1::SetAuditFlags(short)
?SetAuditFlags@NET_ACCESS_1@@QAEJF@Z
; public: long __thiscall USER_11::SetAuthFlags(unsigned long)
?SetAuthFlags@USER_11@@QAEJK@Z
; protected: void __thiscall DEVICE::SetBufPtr(unsigned char *)
?SetBufPtr@DEVICE@@IAEXPAE@Z
; public: void __thiscall ALIAS_ENUM_OBJ::SetBufferPtr(struct _SAM_RID_ENUMERATION const *)
?SetBufferPtr@ALIAS_ENUM_OBJ@@QAEXPBU_SAM_RID_ENUMERATION@@@Z
; public: void __thiscall CHARDEVQ1_ENUM_OBJ::SetBufferPtr(struct _CHARDEVQ_INFO_1 const *)
?SetBufferPtr@CHARDEVQ1_ENUM_OBJ@@QAEXPBU_CHARDEVQ_INFO_1@@@Z
; public: void __thiscall CONN0_ENUM_OBJ::SetBufferPtr(struct _CONNECTION_INFO_0 const *)
?SetBufferPtr@CONN0_ENUM_OBJ@@QAEXPBU_CONNECTION_INFO_0@@@Z
; public: void __thiscall CONN1_ENUM_OBJ::SetBufferPtr(struct _CONNECTION_INFO_1 const *)
?SetBufferPtr@CONN1_ENUM_OBJ@@QAEXPBU_CONNECTION_INFO_1@@@Z
; public: void __thiscall CONTEXT_ENUM_OBJ::SetBufferPtr(struct _SERVER_INFO_101 const *)
?SetBufferPtr@CONTEXT_ENUM_OBJ@@QAEXPBU_SERVER_INFO_101@@@Z
; public: void __thiscall DOMAIN0_ENUM_OBJ::SetBufferPtr(struct _SERVER_INFO_100 const *)
?SetBufferPtr@DOMAIN0_ENUM_OBJ@@QAEXPBU_SERVER_INFO_100@@@Z
; protected: void __thiscall ENUM_OBJ_BASE::SetBufferPtr(unsigned char const *)
?SetBufferPtr@ENUM_OBJ_BASE@@IAEXPBE@Z
; public: void __thiscall FILE2_ENUM_OBJ::SetBufferPtr(struct _FILE_INFO_2 const *)
?SetBufferPtr@FILE2_ENUM_OBJ@@QAEXPBU_FILE_INFO_2@@@Z
; public: void __thiscall FILE3_ENUM_OBJ::SetBufferPtr(struct _FILE_INFO_3 const *)
?SetBufferPtr@FILE3_ENUM_OBJ@@QAEXPBU_FILE_INFO_3@@@Z
; public: void __thiscall GROUP0_ENUM_OBJ::SetBufferPtr(struct _GROUP_INFO_0 const *)
?SetBufferPtr@GROUP0_ENUM_OBJ@@QAEXPBU_GROUP_INFO_0@@@Z
; public: void __thiscall GROUP1_ENUM_OBJ::SetBufferPtr(struct _GROUP_INFO_1 const *)
?SetBufferPtr@GROUP1_ENUM_OBJ@@QAEXPBU_GROUP_INFO_1@@@Z
; public: void __thiscall LSA_ACCOUNTS_ENUM_OBJ::SetBufferPtr(void * const *)
?SetBufferPtr@LSA_ACCOUNTS_ENUM_OBJ@@QAEXPBQAX@Z
; public: void __thiscall LSA_PRIVILEGES_ENUM_OBJ::SetBufferPtr(struct _POLICY_PRIVILEGE_DEFINITION const *)
?SetBufferPtr@LSA_PRIVILEGES_ENUM_OBJ@@QAEXPBU_POLICY_PRIVILEGE_DEFINITION@@@Z
; protected: void __thiscall NEW_LM_OBJ::SetBufferPtr(unsigned char *)
?SetBufferPtr@NEW_LM_OBJ@@IAEXPAE@Z
; public: void __thiscall NT_GROUP_ENUM_OBJ::SetBufferPtr(struct _DOMAIN_DISPLAY_GROUP const *)
?SetBufferPtr@NT_GROUP_ENUM_OBJ@@QAEXPBU_DOMAIN_DISPLAY_GROUP@@@Z
; public: void __thiscall NT_MACHINE_ENUM_OBJ::SetBufferPtr(struct _DOMAIN_DISPLAY_MACHINE const *)
?SetBufferPtr@NT_MACHINE_ENUM_OBJ@@QAEXPBU_DOMAIN_DISPLAY_MACHINE@@@Z
; public: void __thiscall NT_USER_ENUM_OBJ::SetBufferPtr(struct _DOMAIN_DISPLAY_USER const *)
?SetBufferPtr@NT_USER_ENUM_OBJ@@QAEXPBU_DOMAIN_DISPLAY_USER@@@Z
; public: void __thiscall SAM_USER_ENUM_OBJ::SetBufferPtr(struct _SAM_RID_ENUMERATION const *)
?SetBufferPtr@SAM_USER_ENUM_OBJ@@QAEXPBU_SAM_RID_ENUMERATION@@@Z
; public: void __thiscall SERVER1_ENUM_OBJ::SetBufferPtr(struct _SERVER_INFO_101 const *)
?SetBufferPtr@SERVER1_ENUM_OBJ@@QAEXPBU_SERVER_INFO_101@@@Z
; protected: void __thiscall SERVICE_ENUM_OBJ::SetBufferPtr(struct _ENUM_SVC_STATUS const *)
?SetBufferPtr@SERVICE_ENUM_OBJ@@IAEXPBU_ENUM_SVC_STATUS@@@Z
; public: void __thiscall SESSION0_ENUM_OBJ::SetBufferPtr(struct _SESSION_INFO_0 const *)
?SetBufferPtr@SESSION0_ENUM_OBJ@@QAEXPBU_SESSION_INFO_0@@@Z
; public: void __thiscall SESSION1_ENUM_OBJ::SetBufferPtr(struct _SESSION_INFO_1 const *)
?SetBufferPtr@SESSION1_ENUM_OBJ@@QAEXPBU_SESSION_INFO_1@@@Z
; public: void __thiscall SHARE1_ENUM_OBJ::SetBufferPtr(struct _SHARE_INFO_1 const *)
?SetBufferPtr@SHARE1_ENUM_OBJ@@QAEXPBU_SHARE_INFO_1@@@Z
; public: void __thiscall SHARE2_ENUM_OBJ::SetBufferPtr(struct _SHARE_INFO_2 const *)
?SetBufferPtr@SHARE2_ENUM_OBJ@@QAEXPBU_SHARE_INFO_2@@@Z
; public: void __thiscall TRIPLE_SERVER_ENUM_OBJ::SetBufferPtr(struct _TRIPLE_SERVER_INFO const *)
?SetBufferPtr@TRIPLE_SERVER_ENUM_OBJ@@QAEXPBU_TRIPLE_SERVER_INFO@@@Z
; public: void __thiscall TRUSTED_DOMAIN_ENUM_OBJ::SetBufferPtr(struct _LSA_TRUST_INFORMATION const *)
?SetBufferPtr@TRUSTED_DOMAIN_ENUM_OBJ@@QAEXPBU_LSA_TRUST_INFORMATION@@@Z
; public: void __thiscall USE1_ENUM_OBJ::SetBufferPtr(struct _USE_INFO_1 const *)
?SetBufferPtr@USE1_ENUM_OBJ@@QAEXPBU_USE_INFO_1@@@Z
; public: void __thiscall USER0_ENUM_OBJ::SetBufferPtr(struct _USER_INFO_0 const *)
?SetBufferPtr@USER0_ENUM_OBJ@@QAEXPBU_USER_INFO_0@@@Z
; public: void __thiscall USER10_ENUM_OBJ::SetBufferPtr(struct _USER_INFO_10 const *)
?SetBufferPtr@USER10_ENUM_OBJ@@QAEXPBU_USER_INFO_10@@@Z
; public: void __thiscall USER1_ENUM_OBJ::SetBufferPtr(struct _USER_INFO_1 const *)
?SetBufferPtr@USER1_ENUM_OBJ@@QAEXPBU_USER_INFO_1@@@Z
; public: void __thiscall USER2_ENUM_OBJ::SetBufferPtr(struct _USER_INFO_2 const *)
?SetBufferPtr@USER2_ENUM_OBJ@@QAEXPBU_USER_INFO_2@@@Z
; protected: long __thiscall LM_SESSION_2::SetClientType(unsigned short const *)
?SetClientType@LM_SESSION_2@@IAEJPBG@Z
; public: long __thiscall GROUP_1::SetComment(unsigned short const *)
?SetComment@GROUP_1@@QAEJPBG@Z
; public: long __thiscall SAM_ALIAS::SetComment(class NLS_STR const *)
?SetComment@SAM_ALIAS@@QAEJPBVNLS_STR@@@Z
; public: long __thiscall SERVER_1::SetComment(unsigned short const *)
?SetComment@SERVER_1@@QAEJPBG@Z
; public: long __thiscall SHARE_1::SetComment(unsigned short const *)
?SetComment@SHARE_1@@QAEJPBG@Z
; public: long __thiscall USER_11::SetComment(unsigned short const *)
?SetComment@USER_11@@QAEJPBG@Z
; public: long __thiscall LSA_TRUSTED_DOMAIN::SetControllerList(struct _TRUSTED_CONTROLLERS_INFO const &)
?SetControllerList@LSA_TRUSTED_DOMAIN@@QAEJABU_TRUSTED_CONTROLLERS_INFO@@@Z
; public: long __thiscall LSA_TRUSTED_DOMAIN::SetControllerList(class LSA_REF_DOMAIN_MEM *)
?SetControllerList@LSA_TRUSTED_DOMAIN@@QAEJPAVLSA_REF_DOMAIN_MEM@@@Z
; protected: void __thiscall ENUM_CALLER::SetCount(unsigned int)
?SetCount@ENUM_CALLER@@IAEXI@Z
; protected: void __thiscall OS_ACL_SUBJECT_ITER::SetCurrentACE(unsigned long)
?SetCurrentACE@OS_ACL_SUBJECT_ITER@@IAEXK@Z
; protected: long __thiscall SHARE_2::SetCurrentUses(unsigned int)
?SetCurrentUses@SHARE_2@@IAEJI@Z
; public: long __thiscall OS_SECURITY_DESCRIPTOR::SetDACL(int,class OS_ACL const *,int)
?SetDACL@OS_SECURITY_DESCRIPTOR@@QAEJHPBVOS_ACL@@H@Z
; protected: void __thiscall DEVICE::SetDevState(enum LMO_DEV_STATE)
?SetDevState@DEVICE@@IAEXW4LMO_DEV_STATE@@@Z
; protected: void __thiscall DEVICE::SetDevType(enum LMO_DEVICE)
?SetDevType@DEVICE@@IAEXW4LMO_DEVICE@@@Z
; protected: long __thiscall DEVICE2::SetDomainName(unsigned short const *)
?SetDomainName@DEVICE2@@IAEJPBG@Z
; public: long __thiscall USER_MODALS_3::SetDuration(unsigned long)
?SetDuration@USER_MODALS_3@@QAEJK@Z
; protected: long __thiscall LM_FILE::SetFileId(unsigned long)
?SetFileId@LM_FILE@@IAEJK@Z
; public: long __thiscall USER_MODALS::SetForceLogoff(unsigned long)
?SetForceLogoff@USER_MODALS@@QAEJK@Z
; public: long __thiscall USER_11::SetFullName(unsigned short const *)
?SetFullName@USER_11@@QAEJPBG@Z
; public: long __thiscall OS_SECURITY_DESCRIPTOR::SetGroup(class OS_SID const &,int)
?SetGroup@OS_SECURITY_DESCRIPTOR@@QAEJABVOS_SID@@H@Z
; public: long __thiscall OS_SECURITY_DESCRIPTOR::SetGroup(int,class OS_SID const *,int)
?SetGroup@OS_SECURITY_DESCRIPTOR@@QAEJHPBVOS_SID@@H@Z
; public: long __thiscall SAM_GROUP::SetGroupname(class NLS_STR const *)
?SetGroupname@SAM_GROUP@@QAEJPBVNLS_STR@@@Z
; protected: void __thiscall LSA_OBJECT::SetHandle(void *)
?SetHandle@LSA_OBJECT@@IAEXPAX@Z
; protected: void __thiscall SAM_OBJECT::SetHandle(void *)
?SetHandle@SAM_OBJECT@@IAEXPAX@Z
; protected: void __thiscall SERVICE_CONTROL::SetHandle(struct SC_HANDLE__ *)
?SetHandle@SERVICE_CONTROL@@IAEXPAUSC_HANDLE__@@@Z
; public: long __thiscall USER_11::SetHomeDir(unsigned short const *)
?SetHomeDir@USER_11@@QAEJPBG@Z
; public: long __thiscall USER_3::SetHomedirDrive(unsigned short const *)
?SetHomedirDrive@USER_3@@QAEJPBG@Z
; protected: void __thiscall LM_SESSION_10::SetIdleTime(unsigned long)
?SetIdleTime@LM_SESSION_10@@IAEXK@Z
; protected: virtual void __thiscall DEVICE2::SetInfo(void)
?SetInfo@DEVICE2@@MAEXXZ
; protected: virtual void __thiscall DEVICE::SetInfo(void)
?SetInfo@DEVICE@@MAEXXZ
; public: long __thiscall LSA_SECRET::SetInfo(class NLS_STR const *,class NLS_STR const *)
?SetInfo@LSA_SECRET@@QAEJPBVNLS_STR@@0@Z
; public: void __thiscall OS_ACE::SetInheritOnly(int)
?SetInheritOnly@OS_ACE@@QAEXH@Z
; public: long __thiscall USER_2::SetLockout(int)
?SetLockout@USER_2@@QAEJH@Z
; public: long __thiscall WKSTA_USER_1::SetLogonDomain(unsigned short const *)
?SetLogonDomain@WKSTA_USER_1@@QAEJPBG@Z
; public: long __thiscall USER_11::SetLogonHours(class LOGON_HOURS_SETTING const &)
?SetLogonHours@USER_11@@QAEJABVLOGON_HOURS_SETTING@@@Z
; public: long __thiscall USER_11::SetLogonHours(unsigned char const *,unsigned int)
?SetLogonHours@USER_11@@QAEJPBEI@Z
; public: long __thiscall WKSTA_USER_1::SetLogonServer(unsigned short const *)
?SetLogonServer@WKSTA_USER_1@@QAEJPBG@Z
; public: void __thiscall OS_LUID_AND_ATTRIBUTES::SetLuidAndAttrib(struct _LUID_AND_ATTRIBUTES)
?SetLuidAndAttrib@OS_LUID_AND_ATTRIBUTES@@QAEXU_LUID_AND_ATTRIBUTES@@@Z
; protected: void __thiscall SERVER_1::SetMajorMinorVer(unsigned int,unsigned int)
?SetMajorMinorVer@SERVER_1@@IAEXII@Z
; public: long __thiscall USER_MODALS::SetMaxPasswdAge(unsigned long)
?SetMaxPasswdAge@USER_MODALS@@QAEJK@Z
; protected: void __thiscall SERVER_2::SetMaxUsers(unsigned int)
?SetMaxUsers@SERVER_2@@IAEXI@Z
; public: long __thiscall SHARE_2::SetMaxUses(unsigned int)
?SetMaxUses@SHARE_2@@QAEJI@Z
; public: long __thiscall USER_MODALS::SetMinPasswdAge(unsigned long)
?SetMinPasswdAge@USER_MODALS@@QAEJK@Z
; public: long __thiscall USER_MODALS::SetMinPasswdLen(unsigned int)
?SetMinPasswdLen@USER_MODALS@@QAEJI@Z
; public: long __thiscall COMPUTER::SetName(unsigned short const *)
?SetName@COMPUTER@@QAEJPBG@Z
; public: long __thiscall GROUP::SetName(unsigned short const *)
?SetName@GROUP@@QAEJPBG@Z
; public: long __thiscall GROUP_MEMB::SetName(unsigned short const *)
?SetName@GROUP_MEMB@@QAEJPBG@Z
; protected: long __thiscall LM_SERVICE::SetName(unsigned short const *)
?SetName@LM_SERVICE@@IAEJPBG@Z
; protected: long __thiscall LM_SESSION::SetName(unsigned short const *)
?SetName@LM_SESSION@@IAEJPBG@Z
; public: long __thiscall NET_ACCESS::SetName(unsigned short const *)
?SetName@NET_ACCESS@@QAEJPBG@Z
; protected: long __thiscall SHARE::SetName(unsigned short const *)
?SetName@SHARE@@IAEJPBG@Z
; public: long __thiscall USER::SetName(unsigned short const *)
?SetName@USER@@QAEJPBG@Z
; public: long __thiscall USER_MEMB::SetName(unsigned short const *)
?SetName@USER_MEMB@@QAEJPBG@Z
; public: void __thiscall SAM_PSWD_DOM_INFO_MEM::SetNoAnonChange(int)
?SetNoAnonChange@SAM_PSWD_DOM_INFO_MEM@@QAEXH@Z
; public: long __thiscall USER_2::SetNoPasswordExpire(int)
?SetNoPasswordExpire@USER_2@@QAEJH@Z
; protected: void __thiscall LM_SESSION_1::SetNumOpens(unsigned int)
?SetNumOpens@LM_SESSION_1@@IAEXI@Z
; public: long __thiscall USER_MODALS_3::SetObservation(unsigned long)
?SetObservation@USER_MODALS_3@@QAEJK@Z
; public: long __thiscall WKSTA_USER_1::SetOtherDomains(unsigned short const *)
?SetOtherDomains@WKSTA_USER_1@@QAEJPBG@Z
; public: long __thiscall OS_SECURITY_DESCRIPTOR::SetOwner(class OS_SID const &,int)
?SetOwner@OS_SECURITY_DESCRIPTOR@@QAEJABVOS_SID@@H@Z
; public: long __thiscall OS_SECURITY_DESCRIPTOR::SetOwner(int,class OS_SID const *,int)
?SetOwner@OS_SECURITY_DESCRIPTOR@@QAEJHPBVOS_SID@@H@Z
; public: long __thiscall USER_11::SetParms(unsigned short const *)
?SetParms@USER_11@@QAEJPBG@Z
; public: long __thiscall USER_MODALS::SetPasswdHistLen(unsigned int)
?SetPasswdHistLen@USER_MODALS@@QAEJI@Z
; public: long __thiscall SAM_USER::SetPassword(class NLS_STR const &,class NLS_STR const &)
?SetPassword@SAM_USER@@QAEJABVNLS_STR@@0@Z
; public: long __thiscall SAM_USER::SetPassword(class NLS_STR const &,int)
?SetPassword@SAM_USER@@QAEJABVNLS_STR@@H@Z
; public: long __thiscall SHARE_2::SetPassword(unsigned short const *)
?SetPassword@SHARE_2@@QAEJPBG@Z
; public: long __thiscall USER_2::SetPassword(unsigned short const *)
?SetPassword@USER_2@@QAEJPBG@Z
; public: long __thiscall USER_3::SetPasswordExpired(unsigned long)
?SetPasswordExpired@USER_3@@QAEJK@Z
; public: long __thiscall SAM_DOMAIN::SetPasswordInfo(class SAM_PSWD_DOM_INFO_MEM const *)
?SetPasswordInfo@SAM_DOMAIN@@QAEJPBVSAM_PSWD_DOM_INFO_MEM@@@Z
; public: long __thiscall SHARE_2::SetPath(unsigned short const *)
?SetPath@SHARE_2@@QAEJPBG@Z
; public: long __thiscall NET_ACCESS_1::SetPerm(unsigned short const *,enum PERMNAME_TYPE,unsigned int)
?SetPerm@NET_ACCESS_1@@QAEJPBGW4PERMNAME_TYPE@@I@Z
; public: long __thiscall SHARE_2::SetPermissions(unsigned int)
?SetPermissions@SHARE_2@@QAEJI@Z
; public: long __thiscall LSA_TRUSTED_DOMAIN::SetPosixOffset(unsigned long)
?SetPosixOffset@LSA_TRUSTED_DOMAIN@@QAEJK@Z
; public: long __thiscall LSA_POLICY::SetPrimaryBrowserGroup(class NLS_STR const &)
?SetPrimaryBrowserGroup@LSA_POLICY@@QAEJABVNLS_STR@@@Z
; public: long __thiscall LSA_POLICY::SetPrimaryDomain(class LSA_PRIMARY_DOM_INFO_MEM const *)
?SetPrimaryDomain@LSA_POLICY@@QAEJPBVLSA_PRIMARY_DOM_INFO_MEM@@@Z
; public: long __thiscall LSA_POLICY::SetPrimaryDomainName(class NLS_STR const *,void * const *)
?SetPrimaryDomainName@LSA_POLICY@@QAEJPBVNLS_STR@@PBQAX@Z
; public: long __thiscall USER_3::SetPrimaryGroupId(unsigned long)
?SetPrimaryGroupId@USER_3@@QAEJK@Z
; public: long __thiscall USER_11::SetPriv(unsigned int)
?SetPriv@USER_11@@QAEJI@Z
; public: long __thiscall USER_3::SetProfile(unsigned short const *)
?SetProfile@USER_3@@QAEJPBG@Z
; public: long __thiscall OS_ACE::SetPtr(void *)
?SetPtr@OS_ACE@@QAEJPAX@Z
; public: void __thiscall OS_PRIVILEGE_SET::SetPtr(struct _PRIVILEGE_SET *)
?SetPtr@OS_PRIVILEGE_SET@@QAEXPAU_PRIVILEGE_SET@@@Z
; public: long __thiscall OS_SID::SetPtr(void *)
?SetPtr@OS_SID@@QAEJPAX@Z
; protected: void __thiscall DEVICE::SetRemoteName(unsigned short const *)
?SetRemoteName@DEVICE@@IAEXPBG@Z
; protected: void __thiscall DEVICE::SetRemoteType(unsigned int)
?SetRemoteType@DEVICE@@IAEXI@Z
; protected: long __thiscall SHARE_1::SetResourceType(unsigned int)
?SetResourceType@SHARE_1@@IAEJI@Z
; public: long __thiscall SHARE_2::SetResourceType(unsigned int)
?SetResourceType@SHARE_2@@QAEJI@Z
; public: long __thiscall OS_SECURITY_DESCRIPTOR::SetSACL(int,class OS_ACL const *,int)
?SetSACL@OS_SECURITY_DESCRIPTOR@@QAEJHPBVOS_ACL@@H@Z
; public: long __thiscall OS_ACE::SetSID(class OS_SID const &)
?SetSID@OS_ACE@@QAEJABVOS_SID@@@Z
; public: long __thiscall USER_2::SetScriptPath(unsigned short const *)
?SetScriptPath@USER_2@@QAEJPBG@Z
; public: long __thiscall SC_SERVICE::SetSecurity(unsigned long,void * const)
?SetSecurity@SC_SERVICE@@QAEJKQAX@Z
; protected: void __thiscall SERVER_2::SetSecurity(unsigned int)
?SetSecurity@SERVER_2@@IAEXI@Z
; protected: long __thiscall LM_FILE::SetServer(unsigned short const *)
?SetServer@LM_FILE@@IAEJPBG@Z
; protected: void __thiscall DEVICE::SetServerName(unsigned short const *)
?SetServerName@DEVICE@@IAEXPBG@Z
; protected: long __thiscall LM_SERVICE::SetServerName(unsigned short const *)
?SetServerName@LM_SERVICE@@IAEJPBG@Z
; public: long __thiscall NET_ACCESS::SetServerName(unsigned short const *)
?SetServerName@NET_ACCESS@@QAEJPBG@Z
; public: long __thiscall LSA_POLICY::SetServerRole(class LSA_SERVER_ROLE_INFO_MEM const *)
?SetServerRole@LSA_POLICY@@QAEJPBVLSA_SERVER_ROLE_INFO_MEM@@@Z
; protected: void __thiscall SERVER_1::SetServerType(unsigned long)
?SetServerType@SERVER_1@@IAEXK@Z
; public: long __thiscall LSA_POLICY::SetShutDownOnFull(int)
?SetShutDownOnFull@LSA_POLICY@@QAEJH@Z
; public: long __thiscall OS_ACE::SetSize(unsigned int)
?SetSize@OS_ACE@@QAEJI@Z
; protected: long __thiscall OS_ACL::SetSize(unsigned int,int)
?SetSize@OS_ACL@@IAEJIH@Z
; protected: void __thiscall DEVICE::SetStatus(unsigned int)
?SetStatus@DEVICE@@IAEXI@Z
; public: long __thiscall USER_MODALS_3::SetThreshold(unsigned long)
?SetThreshold@USER_MODALS_3@@QAEJK@Z
; protected: void __thiscall LM_SESSION_10::SetTime(unsigned long)
?SetTime@LM_SESSION_10@@IAEXK@Z
; private: long __thiscall NET_NAME::SetUNCPath(unsigned short const *)
?SetUNCPath@NET_NAME@@AAEJPBG@Z
; public: long __thiscall USER_2::SetUserCantChangePass(int)
?SetUserCantChangePass@USER_2@@QAEJH@Z
; public: long __thiscall USER_11::SetUserComment(unsigned short const *)
?SetUserComment@USER_11@@QAEJPBG@Z
; protected: long __thiscall USER_2::SetUserFlag(int,unsigned int)
?SetUserFlag@USER_2@@IAEJHI@Z
; protected: void __thiscall LM_SESSION_1::SetUserFlags(unsigned long)
?SetUserFlags@LM_SESSION_1@@IAEXK@Z
; public: long __thiscall USER_2::SetUserFlags(unsigned int)
?SetUserFlags@USER_2@@QAEJI@Z
; protected: long __thiscall USER_3::SetUserId(unsigned long)
?SetUserId@USER_3@@IAEJK@Z
; public: long __thiscall WKSTA_USER_1::SetUserName(unsigned short const *)
?SetUserName@WKSTA_USER_1@@QAEJPBG@Z
; public: long __thiscall USER_2::SetUserPassRequired(int)
?SetUserPassRequired@USER_2@@QAEJH@Z
; protected: long __thiscall DEVICE2::SetUsername(unsigned short const *)
?SetUsername@DEVICE2@@IAEJPBG@Z
; protected: long __thiscall LM_SESSION_10::SetUsername(unsigned short const *)
?SetUsername@LM_SESSION_10@@IAEJPBG@Z
; public: long __thiscall SAM_USER::SetUsername(class NLS_STR const *)
?SetUsername@SAM_USER@@QAEJPBVNLS_STR@@@Z
; public: long __thiscall LM_CONFIG::SetValue(class NLS_STR *)
?SetValue@LM_CONFIG@@QAEJPAVNLS_STR@@@Z
; public: long __thiscall USER_11::SetWorkstations(unsigned short const *)
?SetWorkstations@USER_11@@QAEJPBG@Z
; protected: long __thiscall SHARE_2::SetWriteBuffer(int)
?SetWriteBuffer@SHARE_2@@IAEJH@Z
; void __stdcall SkipWhiteSpace(unsigned short * *)
?SkipWhiteSpace@@YGXPAPAG@Z
; public: void __thiscall DOMAIN0_ENUM::Sort(void)
?Sort@DOMAIN0_ENUM@@QAEXXZ
; public: long __thiscall LM_SERVICE::Start(unsigned short const *,unsigned int,unsigned int)
?Start@LM_SERVICE@@QAEJPBGII@Z
; public: long __thiscall SC_SERVICE::Start(unsigned int,unsigned short const * *)
?Start@SC_SERVICE@@QAEJIPAPBG@Z
; public: long __thiscall LM_SERVICE::Stop(unsigned int,unsigned int)
?Stop@LM_SERVICE@@QAEJII@Z
; protected: long __thiscall LSA_POLICY::TcharArrayToUnistrArray(unsigned short const * const *,struct _UNICODE_STRING *,unsigned long)
?TcharArrayToUnistrArray@LSA_POLICY@@IAEJPBQBGPAU_UNICODE_STRING@@K@Z
; public: long __thiscall SAM_DOMAIN::TranslateNamesToRids(unsigned short const * const *,unsigned long,class SAM_RID_MEM *,class SAM_SID_NAME_USE_MEM *)const 
?TranslateNamesToRids@SAM_DOMAIN@@QBEJPBQBGKPAVSAM_RID_MEM@@PAVSAM_SID_NAME_USE_MEM@@@Z
; public: long __thiscall LSA_POLICY::TranslateNamesToSids(unsigned short const * const *,unsigned long,class LSA_TRANSLATED_SID_MEM *,class LSA_REF_DOMAIN_MEM *)
?TranslateNamesToSids@LSA_POLICY@@QAEJPBQBGKPAVLSA_TRANSLATED_SID_MEM@@PAVLSA_REF_DOMAIN_MEM@@@Z
; public: long __thiscall LSA_POLICY::TranslateSidsToNames(void * const *,unsigned long,class LSA_TRANSLATED_NAME_MEM *,class LSA_REF_DOMAIN_MEM *)
?TranslateSidsToNames@LSA_POLICY@@QAEJPBQAXKPAVLSA_TRANSLATED_NAME_MEM@@PAVLSA_REF_DOMAIN_MEM@@@Z
; public: long __thiscall OS_SID::TrimLastSubAuthority(unsigned long *)
?TrimLastSubAuthority@OS_SID@@QAEJPAK@Z
; public: long __thiscall USER_11::TrimParams(void)
?TrimParams@USER_11@@QAEJXZ
; public: long __thiscall LSA_POLICY::TrustDomain(class LSA_POLICY &,class NLS_STR const &,int,unsigned short const *)
?TrustDomain@LSA_POLICY@@QAEJAAV1@ABVNLS_STR@@HPBG@Z
; public: long __thiscall LSA_POLICY::TrustDomain(class NLS_STR const &,void * const,class NLS_STR const &,int,unsigned short const *,int)
?TrustDomain@LSA_POLICY@@QAEJABVNLS_STR@@QAX0HPBGH@Z
; public: long __thiscall SC_MANAGER::Unlock(void)
?Unlock@SC_MANAGER@@QAEJXZ
; protected: long __thiscall OS_SECURITY_DESCRIPTOR::UpdateControl(void)
?UpdateControl@OS_SECURITY_DESCRIPTOR@@IAEJXZ
; protected: long __thiscall OS_SECURITY_DESCRIPTOR::UpdateReferencedSecurityObject(class OS_OBJECT_WITH_DATA *)
?UpdateReferencedSecurityObject@OS_SECURITY_DESCRIPTOR@@IAEJPAVOS_OBJECT_WITH_DATA@@@Z
; public: long __thiscall ADMIN_AUTHORITY::UpgradeAccountDomain(unsigned long)
?UpgradeAccountDomain@ADMIN_AUTHORITY@@QAEJK@Z
; public: long __thiscall ADMIN_AUTHORITY::UpgradeBuiltinDomain(unsigned long)
?UpgradeBuiltinDomain@ADMIN_AUTHORITY@@QAEJK@Z
; public: long __thiscall ADMIN_AUTHORITY::UpgradeLSAPolicy(unsigned long)
?UpgradeLSAPolicy@ADMIN_AUTHORITY@@QAEJK@Z
; public: long __thiscall ADMIN_AUTHORITY::UpgradeSamServer(unsigned long)
?UpgradeSamServer@ADMIN_AUTHORITY@@QAEJK@Z
; private: long __thiscall COMPUTER::ValidateName(unsigned short const *)
?ValidateName@COMPUTER@@AAEJPBG@Z
; protected: virtual long __thiscall DEVICE::ValidateName(void)
?ValidateName@DEVICE@@MAEJXZ
; protected: virtual long __thiscall DOMAIN::ValidateName(void)
?ValidateName@DOMAIN@@MAEJXZ
; protected: virtual long __thiscall LM_OBJ::ValidateName(void)
?ValidateName@LM_OBJ@@MAEJXZ
; public: static long __stdcall NT_ACCOUNTS_UTILITY::ValidateQualifiedAccountName(class NLS_STR const &,int *)
?ValidateQualifiedAccountName@NT_ACCOUNTS_UTILITY@@SGJABVNLS_STR@@PAH@Z
; public: long __thiscall LSA_POLICY::VerifyLsa(class LSA_PRIMARY_DOM_INFO_MEM *,class NLS_STR const *)const 
?VerifyLsa@LSA_POLICY@@QBEJPAVLSA_PRIMARY_DOM_INFO_MEM@@PBVNLS_STR@@@Z
; private: static long __stdcall NT_ACCOUNTS_UTILITY::W_BuildQualifiedAccountName(class NLS_STR *,class NLS_STR const &,class NLS_STR const *,enum _SID_NAME_USE)
?W_BuildQualifiedAccountName@NT_ACCOUNTS_UTILITY@@CGJPAVNLS_STR@@ABV2@PBV2@W4_SID_NAME_USE@@@Z
; protected: virtual long __thiscall NEW_LM_OBJ::W_ChangeToNew(void)
?W_ChangeToNew@NEW_LM_OBJ@@MAEJXZ
; protected: long __thiscall ENUM_CALLER_LM_OBJ::W_CloneFrom(class ENUM_CALLER_LM_OBJ const &)
?W_CloneFrom@ENUM_CALLER_LM_OBJ@@IAEJABV1@@Z
; protected: long __thiscall GROUP::W_CloneFrom(class GROUP const &)
?W_CloneFrom@GROUP@@IAEJABV1@@Z
; protected: long __thiscall GROUP_1::W_CloneFrom(class GROUP_1 const &)
?W_CloneFrom@GROUP_1@@IAEJABV1@@Z
; protected: long __thiscall LOC_LM_OBJ::W_CloneFrom(class LOC_LM_OBJ const &)
?W_CloneFrom@LOC_LM_OBJ@@IAEJABV1@@Z
; protected: long __thiscall MEMBERSHIP_LM_OBJ::W_CloneFrom(class MEMBERSHIP_LM_OBJ const &)
?W_CloneFrom@MEMBERSHIP_LM_OBJ@@IAEJABV1@@Z
; protected: long __thiscall NEW_LM_OBJ::W_CloneFrom(class NEW_LM_OBJ const &)
?W_CloneFrom@NEW_LM_OBJ@@IAEJABV1@@Z
; protected: long __thiscall SHARE::W_CloneFrom(class SHARE const &)
?W_CloneFrom@SHARE@@IAEJABV1@@Z
; protected: long __thiscall SHARE_1::W_CloneFrom(class SHARE_1 const &)
?W_CloneFrom@SHARE_1@@IAEJABV1@@Z
; protected: long __thiscall SHARE_2::W_CloneFrom(class SHARE_2 const &)
?W_CloneFrom@SHARE_2@@IAEJABV1@@Z
; protected: long __thiscall USER::W_CloneFrom(class USER const &)
?W_CloneFrom@USER@@IAEJABV1@@Z
; protected: long __thiscall USER_11::W_CloneFrom(class USER_11 const &)
?W_CloneFrom@USER_11@@IAEJABV1@@Z
; protected: long __thiscall USER_2::W_CloneFrom(class USER_2 const &)
?W_CloneFrom@USER_2@@IAEJABV1@@Z
; protected: long __thiscall USER_3::W_CloneFrom(class USER_3 const &)
?W_CloneFrom@USER_3@@IAEJABV1@@Z
; private: void __thiscall LM_SERVICE::W_ComputeOtherStatus(struct LM_SERVICE_OTHER_STATUS *)
?W_ComputeOtherStatus@LM_SERVICE@@AAEXPAULM_SERVICE_OTHER_STATUS@@@Z
; protected: virtual long __thiscall ENUM_CALLER_LM_OBJ::W_CreateNew(void)
?W_CreateNew@ENUM_CALLER_LM_OBJ@@MAEJXZ
; protected: virtual long __thiscall GROUP_1::W_CreateNew(void)
?W_CreateNew@GROUP_1@@MAEJXZ
; protected: virtual long __thiscall GROUP_MEMB::W_CreateNew(void)
?W_CreateNew@GROUP_MEMB@@MAEJXZ
; protected: virtual long __thiscall LSA_ACCOUNT::W_CreateNew(void)
?W_CreateNew@LSA_ACCOUNT@@MAEJXZ
; protected: virtual long __thiscall NEW_LM_OBJ::W_CreateNew(void)
?W_CreateNew@NEW_LM_OBJ@@MAEJXZ
; protected: virtual long __thiscall SHARE::W_CreateNew(void)
?W_CreateNew@SHARE@@MAEJXZ
; protected: virtual long __thiscall SHARE_1::W_CreateNew(void)
?W_CreateNew@SHARE_1@@MAEJXZ
; protected: virtual long __thiscall SHARE_2::W_CreateNew(void)
?W_CreateNew@SHARE_2@@MAEJXZ
; protected: virtual long __thiscall USER_11::W_CreateNew(void)
?W_CreateNew@USER_11@@MAEJXZ
; protected: virtual long __thiscall USER_2::W_CreateNew(void)
?W_CreateNew@USER_2@@MAEJXZ
; protected: virtual long __thiscall USER_3::W_CreateNew(void)
?W_CreateNew@USER_3@@MAEJXZ
; protected: virtual long __thiscall USER_MEMB::W_CreateNew(void)
?W_CreateNew@USER_MEMB@@MAEJXZ
; protected: long __thiscall ENUM_CALLER::W_GetInfo(void)
?W_GetInfo@ENUM_CALLER@@IAEJXZ
; private: void __thiscall LM_SERVICE::W_InterpretStatus(struct _SERVICE_INFO_2 const *,enum LM_SERVICE_STATUS *,struct LM_SERVICE_OTHER_STATUS *)
?W_InterpretStatus@LM_SERVICE@@AAEXPBU_SERVICE_INFO_2@@PAW4LM_SERVICE_STATUS@@PAULM_SERVICE_OTHER_STATUS@@@Z
; private: int __thiscall LM_SERVICE::W_IsWellKnownService(void)const 
?W_IsWellKnownService@LM_SERVICE@@ABEHXZ
; private: long __thiscall LM_SERVICE::W_QueryStatus(enum LM_SERVICE_STATUS *,struct LM_SERVICE_OTHER_STATUS *)
?W_QueryStatus@LM_SERVICE@@AAEJPAW4LM_SERVICE_STATUS@@PAULM_SERVICE_OTHER_STATUS@@@Z
; private: long __thiscall LM_SERVICE::W_ServiceControl(unsigned int,unsigned int)
?W_ServiceControl@LM_SERVICE@@AAEJII@Z
; private: long __thiscall LM_SERVICE::W_ServiceStart(unsigned short const *)
?W_ServiceStart@LM_SERVICE@@AAEJPBG@Z
; private: long __thiscall LOCATION::W_Set(unsigned short const *,enum LOCATION_TYPE,int)
?W_Set@LOCATION@@AAEJPBGW4LOCATION_TYPE@@H@Z
; private: long __thiscall GROUP_1::W_Write(void)
?W_Write@GROUP_1@@AAEJXZ
; private: long __thiscall SERVER_1::W_Write(void)
?W_Write@SERVER_1@@AAEJXZ
; private: long __thiscall SERVER_2::W_Write(void)
?W_Write@SERVER_2@@AAEJXZ
; protected: long __thiscall USER_2::W_Write(void)
?W_Write@USER_2@@IAEJXZ
; protected: long __thiscall USER_3::W_Write(void)
?W_Write@USER_3@@IAEJXZ
; private: long __thiscall WKSTA_USER_1::W_Write(void)
?W_Write@WKSTA_USER_1@@AAEJXZ
; public: long __thiscall NEW_LM_OBJ::Write(void)
?Write@NEW_LM_OBJ@@QAEJXZ
; public: virtual long __thiscall DEVICE::WriteInfo(void)
?WriteInfo@DEVICE@@UAEJXZ
; public: virtual long __thiscall DOMAIN::WriteInfo(void)
?WriteInfo@DOMAIN@@UAEJXZ
; public: long __thiscall NEW_LM_OBJ::WriteInfo(void)
?WriteInfo@NEW_LM_OBJ@@QAEJXZ
; public: virtual long __thiscall USER_MODALS::WriteInfo(void)
?WriteInfo@USER_MODALS@@UAEJXZ
; public: virtual long __thiscall USER_MODALS_3::WriteInfo(void)
?WriteInfo@USER_MODALS_3@@UAEJXZ
; public: long __thiscall NEW_LM_OBJ::WriteNew(void)
?WriteNew@NEW_LM_OBJ@@QAEJXZ
; public: void __thiscall OS_ACE::_DbgPrint(void)const 
?_DbgPrint@OS_ACE@@QBEXXZ
; public: void __thiscall OS_ACL::_DbgPrint(void)const 
?_DbgPrint@OS_ACL@@QBEXXZ
; public: void __thiscall OS_SECURITY_DESCRIPTOR::_DbgPrint(void)const 
?_DbgPrint@OS_SECURITY_DESCRIPTOR@@QBEXXZ
; public: void __thiscall OS_SID::_DbgPrint(void)const 
?_DbgPrint@OS_SID@@QBEXXZ
; private: void __thiscall LM_ENUM::_DeregisterIter(void)
?_DeregisterIter@LM_ENUM@@AAEXXZ
; private: void __thiscall LM_RESUME_ENUM::_DeregisterIter(void)
?_DeregisterIter@LM_RESUME_ENUM@@AAEXXZ
; private: void __thiscall LM_ENUM::_RegisterIter(void)
?_RegisterIter@LM_ENUM@@AAEXXZ
; private: void __thiscall LM_RESUME_ENUM::_RegisterIter(void)
?_RegisterIter@LM_RESUME_ENUM@@AAEXXZ
DestroySession
FreeArgv
I_MNetComputerNameCompare
I_MNetLogonControl
I_MNetNameCanonicalize
I_MNetNameCompare
I_MNetNameValidate
I_MNetPathCanonicalize
I_MNetPathCompare
I_MNetPathType
IsSlowTransport
MAllocMem
MDosPrintQEnum
MFreeMem
MNetAccessAdd
MNetAccessCheck
MNetAccessDel
MNetAccessEnum
MNetAccessGetInfo
MNetAccessGetUserPerms
MNetAccessSetInfo
MNetApiBufferAlloc
MNetApiBufferFree
MNetApiBufferReAlloc
MNetApiBufferSize
MNetAuditClear
MNetAuditRead
MNetAuditWrite
MNetCharDevControl
MNetCharDevGetInfo
MNetCharDevQEnum
MNetCharDevQGetInfo
MNetCharDevQPurge
MNetCharDevQPurgeSelf
MNetCharDevQSetInfo
MNetConfigGet
MNetConfigGetAll
MNetConfigSet
MNetConnectionEnum
MNetErrorLogClear
MNetErrorLogRead
MNetErrorLogWrite
MNetFileClose
MNetFileEnum
MNetFileGetInfo
MNetGetDCName
MNetGroupAdd
MNetGroupAddUser
MNetGroupDel
MNetGroupDelUser
MNetGroupEnum
MNetGroupGetInfo
MNetGroupGetUsers
MNetGroupSetInfo
MNetGroupSetUsers
MNetLocalGroupAddMember
MNetLogonEnum
MNetMessageBufferSend
MNetRemoteTOD
MNetServerDiskEnum
MNetServerEnum
MNetServerGetInfo
MNetServerSetInfo
MNetServiceControl
MNetServiceEnum
MNetServiceGetInfo
MNetServiceInstall
MNetSessionDel
MNetSessionEnum
MNetSessionGetInfo
MNetShareAdd
MNetShareCheck
MNetShareDel
MNetShareDelSticky
MNetShareEnum
MNetShareEnumSticky
MNetShareGetInfo
MNetShareSetInfo
MNetUseAdd
MNetUseDel
MNetUseEnum
MNetUseGetInfo
MNetUserAdd
MNetUserDel
MNetUserEnum
MNetUserGetGroups
MNetUserGetInfo
MNetUserModalsGet
MNetUserModalsSet
MNetUserPasswordSet
MNetUserSetGroups
MNetUserSetInfo
MNetWkstaGetInfo
MNetWkstaSetInfo
MNetWkstaSetUID
MNetWkstaUserEnum
MNetWkstaUserGetInfo
MakeArgvArgc
RegGetMachineIdentifierValue
SetupNormalSession
SetupNullSession
SetupSession
SlowTransportWorkerThread
