; 
; 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
