;
; Definition file of MSVCR110.dll
; Automatic generated by gendef
; written by Kai Tietz 2008
;
LIBRARY "MSVCR110.dll"
EXPORTS
; public: __thiscall Concurrency::details::<0x1ULL>::<0x1ULL>(void(__cdecl *)(void))
??0?$_SpinWait@$00@details@Concurrency@@QAE@P6AXXZ@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::details::<0x0ULL>::<0x0ULL>(void(__cdecl *)(void))
??0?$_SpinWait@$0A@@details@Concurrency@@QAE@P6AXXZ@Z ; has WINAPI (@4)
; public: __cdecl Concurrency::SchedulerPolicy::SchedulerPolicy(unsigned int,...)
??0SchedulerPolicy@Concurrency@@QAA@IZZ
; public: __thiscall Concurrency::SchedulerPolicy::SchedulerPolicy(class Concurrency::SchedulerPolicy const &)
??0SchedulerPolicy@Concurrency@@QAE@ABV01@@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::SchedulerPolicy::SchedulerPolicy(void)
??0SchedulerPolicy@Concurrency@@QAE@XZ
; private: __thiscall Concurrency::details::_CancellationTokenState::_CancellationTokenState(void)
??0_CancellationTokenState@details@Concurrency@@AAE@XZ
; public: __thiscall Concurrency::details::_Cancellation_beacon::_Cancellation_beacon(void)
??0_Cancellation_beacon@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_Condition_variable::_Condition_variable(void)
??0_Condition_variable@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_Context::_Context(class Concurrency::Context *)
??0_Context@details@Concurrency@@QAE@PAVContext@2@@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::details::_Interruption_exception::_Interruption_exception(char const *)
??0_Interruption_exception@details@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::details::_Interruption_exception::_Interruption_exception(void)
??0_Interruption_exception@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_NonReentrantBlockingLock::_NonReentrantBlockingLock(void)
??0_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_NonReentrantPPLLock::_NonReentrantPPLLock(void)
??0_NonReentrantPPLLock@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_ReaderWriterLock::_ReaderWriterLock(void)
??0_ReaderWriterLock@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_ReentrantBlockingLock::_ReentrantBlockingLock(void)
??0_ReentrantBlockingLock@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_ReentrantLock::_ReentrantLock(void)
??0_ReentrantLock@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_ReentrantPPLLock::_ReentrantPPLLock(void)
??0_ReentrantPPLLock@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_Scheduler::_Scheduler(class Concurrency::Scheduler *)
??0_Scheduler@details@Concurrency@@QAE@PAVScheduler@2@@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::details::_NonReentrantPPLLock::_Scoped_lock::_Scoped_lock(class Concurrency::details::_NonReentrantPPLLock &)
??0_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::details::_ReentrantPPLLock::_Scoped_lock::_Scoped_lock(class Concurrency::details::_ReentrantPPLLock &)
??0_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@AAV123@@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::details::_SpinLock::_SpinLock(long volatile &)
??0_SpinLock@details@Concurrency@@QAE@ACJ@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::details::_StructuredTaskCollection::_StructuredTaskCollection(class Concurrency::details::_CancellationTokenState *)
??0_StructuredTaskCollection@details@Concurrency@@QAE@PAV_CancellationTokenState@12@@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::details::_TaskCollection::_TaskCollection(class Concurrency::details::_CancellationTokenState *)
??0_TaskCollection@details@Concurrency@@QAE@PAV_CancellationTokenState@12@@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::details::_TaskCollection::_TaskCollection(void)
??0_TaskCollection@details@Concurrency@@QAE@XZ
; protected: __thiscall Concurrency::details::_Timer::_Timer(unsigned int,bool)
??0_Timer@details@Concurrency@@IAE@I_N@Z ; has WINAPI (@8)
; public: __thiscall std::__non_rtti_object::__non_rtti_object(class std::__non_rtti_object const &)
??0__non_rtti_object@std@@QAE@ABV01@@Z ; has WINAPI (@4)
; public: __thiscall std::__non_rtti_object::__non_rtti_object(char const *)
??0__non_rtti_object@std@@QAE@PBD@Z ; has WINAPI (@4)
; private: __thiscall std::bad_cast::bad_cast(char const *const *)
??0bad_cast@std@@AAE@PBQBD@Z ; has WINAPI (@4)
; public: __thiscall std::bad_cast::bad_cast(class std::bad_cast const &)
??0bad_cast@std@@QAE@ABV01@@Z ; has WINAPI (@4)
; public: __thiscall std::bad_cast::bad_cast(char const *)
??0bad_cast@std@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::bad_target::bad_target(char const *)
??0bad_target@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::bad_target::bad_target(void)
??0bad_target@Concurrency@@QAE@XZ
; public: __thiscall std::bad_typeid::bad_typeid(class std::bad_typeid const &)
??0bad_typeid@std@@QAE@ABV01@@Z ; has WINAPI (@4)
; public: __thiscall std::bad_typeid::bad_typeid(char const *)
??0bad_typeid@std@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::context_self_unblock::context_self_unblock(char const *)
??0context_self_unblock@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::context_self_unblock::context_self_unblock(void)
??0context_self_unblock@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::context_unblock_unbalanced::context_unblock_unbalanced(char const *)
??0context_unblock_unbalanced@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::context_unblock_unbalanced::context_unblock_unbalanced(void)
??0context_unblock_unbalanced@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::critical_section::critical_section(void)
??0critical_section@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::default_scheduler_exists::default_scheduler_exists(char const *)
??0default_scheduler_exists@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::default_scheduler_exists::default_scheduler_exists(void)
??0default_scheduler_exists@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::event::event(void)
??0event@Concurrency@@QAE@XZ
; public: __thiscall std::exception::exception(char const *const &)
??0exception@std@@QAE@ABQBD@Z ; has WINAPI (@4)
; public: __thiscall std::exception::exception(char const *const &,int)
??0exception@std@@QAE@ABQBDH@Z ; has WINAPI (@8)
; public: __thiscall std::exception::exception(class std::exception const &)
??0exception@std@@QAE@ABV01@@Z ; has WINAPI (@4)
; public: __thiscall std::exception::exception(void)
??0exception@std@@QAE@XZ
; public: __thiscall Concurrency::improper_lock::improper_lock(char const *)
??0improper_lock@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::improper_lock::improper_lock(void)
??0improper_lock@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::improper_scheduler_attach::improper_scheduler_attach(char const *)
??0improper_scheduler_attach@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::improper_scheduler_attach::improper_scheduler_attach(void)
??0improper_scheduler_attach@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::improper_scheduler_detach::improper_scheduler_detach(char const *)
??0improper_scheduler_detach@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::improper_scheduler_detach::improper_scheduler_detach(void)
??0improper_scheduler_detach@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::improper_scheduler_reference::improper_scheduler_reference(char const *)
??0improper_scheduler_reference@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::improper_scheduler_reference::improper_scheduler_reference(void)
??0improper_scheduler_reference@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::invalid_link_target::invalid_link_target(char const *)
??0invalid_link_target@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::invalid_link_target::invalid_link_target(void)
??0invalid_link_target@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::invalid_multiple_scheduling::invalid_multiple_scheduling(char const *)
??0invalid_multiple_scheduling@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::invalid_multiple_scheduling::invalid_multiple_scheduling(void)
??0invalid_multiple_scheduling@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::invalid_operation::invalid_operation(char const *)
??0invalid_operation@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::invalid_operation::invalid_operation(void)
??0invalid_operation@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::invalid_oversubscribe_operation::invalid_oversubscribe_operation(char const *)
??0invalid_oversubscribe_operation@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::invalid_oversubscribe_operation::invalid_oversubscribe_operation(void)
??0invalid_oversubscribe_operation@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::invalid_scheduler_policy_key::invalid_scheduler_policy_key(char const *)
??0invalid_scheduler_policy_key@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::invalid_scheduler_policy_key::invalid_scheduler_policy_key(void)
??0invalid_scheduler_policy_key@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::invalid_scheduler_policy_thread_specification::invalid_scheduler_policy_thread_specification(char const *)
??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::invalid_scheduler_policy_thread_specification::invalid_scheduler_policy_thread_specification(void)
??0invalid_scheduler_policy_thread_specification@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::invalid_scheduler_policy_value::invalid_scheduler_policy_value(char const *)
??0invalid_scheduler_policy_value@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::invalid_scheduler_policy_value::invalid_scheduler_policy_value(void)
??0invalid_scheduler_policy_value@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::message_not_found::message_not_found(char const *)
??0message_not_found@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::message_not_found::message_not_found(void)
??0message_not_found@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::missing_wait::missing_wait(char const *)
??0missing_wait@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::missing_wait::missing_wait(void)
??0missing_wait@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::nested_scheduler_missing_detach::nested_scheduler_missing_detach(char const *)
??0nested_scheduler_missing_detach@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::nested_scheduler_missing_detach::nested_scheduler_missing_detach(void)
??0nested_scheduler_missing_detach@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::operation_timed_out::operation_timed_out(char const *)
??0operation_timed_out@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::operation_timed_out::operation_timed_out(void)
??0operation_timed_out@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::reader_writer_lock::reader_writer_lock(void)
??0reader_writer_lock@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::scheduler_not_attached::scheduler_not_attached(char const *)
??0scheduler_not_attached@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::scheduler_not_attached::scheduler_not_attached(void)
??0scheduler_not_attached@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::scheduler_resource_allocation_error::scheduler_resource_allocation_error(long)
??0scheduler_resource_allocation_error@Concurrency@@QAE@J@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::scheduler_resource_allocation_error::scheduler_resource_allocation_error(char const *,long)
??0scheduler_resource_allocation_error@Concurrency@@QAE@PBDJ@Z ; has WINAPI (@8)
; public: __thiscall Concurrency::scheduler_worker_creation_error::scheduler_worker_creation_error(long)
??0scheduler_worker_creation_error@Concurrency@@QAE@J@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::scheduler_worker_creation_error::scheduler_worker_creation_error(char const *,long)
??0scheduler_worker_creation_error@Concurrency@@QAE@PBDJ@Z ; has WINAPI (@8)
; public: __thiscall Concurrency::critical_section::scoped_lock::scoped_lock(class Concurrency::critical_section &)
??0scoped_lock@critical_section@Concurrency@@QAE@AAV12@@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::reader_writer_lock::scoped_lock::scoped_lock(class Concurrency::reader_writer_lock &)
??0scoped_lock@reader_writer_lock@Concurrency@@QAE@AAV12@@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::reader_writer_lock::scoped_lock_read::scoped_lock_read(class Concurrency::reader_writer_lock &)
??0scoped_lock_read@reader_writer_lock@Concurrency@@QAE@AAV12@@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::task_canceled::task_canceled(char const *)
??0task_canceled@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::task_canceled::task_canceled(void)
??0task_canceled@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::unsupported_os::unsupported_os(char const *)
??0unsupported_os@Concurrency@@QAE@PBD@Z ; has WINAPI (@4)
; public: __thiscall Concurrency::unsupported_os::unsupported_os(void)
??0unsupported_os@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::SchedulerPolicy::~SchedulerPolicy(void)
??1SchedulerPolicy@Concurrency@@QAE@XZ
; public: virtual __thiscall Concurrency::details::_CancellationTokenState::~_CancellationTokenState(void)
??1_CancellationTokenState@details@Concurrency@@UAE@XZ
; public: __thiscall Concurrency::details::_Cancellation_beacon::~_Cancellation_beacon(void)
??1_Cancellation_beacon@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_Condition_variable::~_Condition_variable(void)
??1_Condition_variable@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_NonReentrantBlockingLock::~_NonReentrantBlockingLock(void)
??1_NonReentrantBlockingLock@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_ReentrantBlockingLock::~_ReentrantBlockingLock(void)
??1_ReentrantBlockingLock@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_NonReentrantPPLLock::_Scoped_lock::~_Scoped_lock(void)
??1_Scoped_lock@_NonReentrantPPLLock@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_ReentrantPPLLock::_Scoped_lock::~_Scoped_lock(void)
??1_Scoped_lock@_ReentrantPPLLock@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_SpinLock::~_SpinLock(void)
??1_SpinLock@details@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::details::_TaskCollection::~_TaskCollection(void)
??1_TaskCollection@details@Concurrency@@QAE@XZ
; protected: virtual __thiscall Concurrency::details::_Timer::~_Timer(void)
??1_Timer@details@Concurrency@@MAE@XZ
; public: virtual __thiscall std::__non_rtti_object::~__non_rtti_object(void)
??1__non_rtti_object@std@@UAE@XZ
; public: virtual __thiscall std::bad_cast::~bad_cast(void)
??1bad_cast@std@@UAE@XZ
; public: virtual __thiscall std::bad_typeid::~bad_typeid(void)
??1bad_typeid@std@@UAE@XZ
; public: __thiscall Concurrency::critical_section::~critical_section(void)
??1critical_section@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::event::~event(void)
??1event@Concurrency@@QAE@XZ
; public: virtual __thiscall std::exception::~exception(void)
??1exception@std@@UAE@XZ
; public: __thiscall Concurrency::reader_writer_lock::~reader_writer_lock(void)
??1reader_writer_lock@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::critical_section::scoped_lock::~scoped_lock(void)
??1scoped_lock@critical_section@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::reader_writer_lock::scoped_lock::~scoped_lock(void)
??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ
; public: __thiscall Concurrency::reader_writer_lock::scoped_lock_read::~scoped_lock_read(void)
??1scoped_lock_read@reader_writer_lock@Concurrency@@QAE@XZ
; public: virtual __thiscall type_info::~type_info(void)
??1type_info@@UAE@XZ
; void *__cdecl operator new(unsigned int)
??2@YAPAXI@Z
; void *__cdecl operator new(unsigned int,int,char const *,int)
??2@YAPAXIHPBDH@Z
; void __cdecl operator delete(void *)
??3@YAXPAX@Z
; void __cdecl operator delete(void *,int,char const *,int)
??3@YAXPAXHPBDH@Z
; public: class Concurrency::details::<0x1ULL> &__thiscall Concurrency::details::<0x1ULL>::operator =(class Concurrency::details::<0x1ULL> const &)
??4?$_SpinWait@$00@details@Concurrency@@QAEAAV012@ABV012@@Z ; has WINAPI (@4)
; public: class Concurrency::details::<0x0ULL> &__thiscall Concurrency::details::<0x0ULL>::operator =(class Concurrency::details::<0x0ULL> const &)
??4?$_SpinWait@$0A@@details@Concurrency@@QAEAAV012@ABV012@@Z ; has WINAPI (@4)
; public: class Concurrency::SchedulerPolicy &__thiscall Concurrency::SchedulerPolicy::operator =(class Concurrency::SchedulerPolicy const &)
??4SchedulerPolicy@Concurrency@@QAEAAV01@ABV01@@Z ; has WINAPI (@4)
; public: class std::__non_rtti_object &__thiscall std::__non_rtti_object::operator =(class std::__non_rtti_object const &)
??4__non_rtti_object@std@@QAEAAV01@ABV01@@Z ; has WINAPI (@4)
; public: class std::bad_cast &__thiscall std::bad_cast::operator =(class std::bad_cast const &)
??4bad_cast@std@@QAEAAV01@ABV01@@Z ; has WINAPI (@4)
; public: class std::bad_typeid &__thiscall std::bad_typeid::operator =(class std::bad_typeid const &)
??4bad_typeid@std@@QAEAAV01@ABV01@@Z ; has WINAPI (@4)
; public: class std::exception &__thiscall std::exception::operator =(class std::exception const &)
??4exception@std@@QAEAAV01@ABV01@@Z ; has WINAPI (@4)
; public: bool __thiscall type_info::operator ==(class type_info const &)const 
??8type_info@@QBE_NABV0@@Z ; has WINAPI (@4)
; public: bool __thiscall type_info::operator !=(class type_info const &)const 
??9type_info@@QBE_NABV0@@Z ; has WINAPI (@4)
; const std::__non_rtti_object::$vftable
??_7__non_rtti_object@std@@6B@ DATA
; const std::bad_cast::$vftable
??_7bad_cast@std@@6B@ DATA
; const std::bad_typeid::$vftable
??_7bad_typeid@std@@6B@ DATA
; const std::exception::$vftable
??_7exception@std@@6B@ DATA
; public: void __thiscall Concurrency::details::<0x1ULL>::__dflt_ctor_closure(void)
??_F?$_SpinWait@$00@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::<0x0ULL>::__dflt_ctor_closure(void)
??_F?$_SpinWait@$0A@@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_Context::__dflt_ctor_closure(void)
??_F_Context@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_Scheduler::__dflt_ctor_closure(void)
??_F_Scheduler@details@Concurrency@@QAEXXZ
; public: void __thiscall std::bad_cast::__dflt_ctor_closure(void)
??_Fbad_cast@std@@QAEXXZ
; public: void __thiscall std::bad_typeid::__dflt_ctor_closure(void)
??_Fbad_typeid@std@@QAEXXZ
; void *__cdecl operator new[](unsigned int)
??_U@YAPAXI@Z
; void *__cdecl operator new[](unsigned int,int,char const *,int)
??_U@YAPAXIHPBDH@Z
; void __cdecl operator delete[](void *)
??_V@YAXPAX@Z
; void __cdecl operator delete[](void *,int,char const *,int)
??_V@YAXPAXHPBDH@Z
; void *__cdecl Concurrency::Alloc(unsigned int)
?Alloc@Concurrency@@YAPAXI@Z
; public: static void __cdecl Concurrency::Context::Block(void)
?Block@Context@Concurrency@@SAXXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; public: static void __cdecl Concurrency::CurrentScheduler::Create(class Concurrency::SchedulerPolicy const &)
?Create@CurrentScheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; public: static class Concurrency::Scheduler *__cdecl Concurrency::Scheduler::Create(class Concurrency::SchedulerPolicy const &)
?Create@Scheduler@Concurrency@@SAPAV12@ABVSchedulerPolicy@2@@Z
; struct Concurrency::IResourceManager *__cdecl Concurrency::CreateResourceManager(void)
?CreateResourceManager@Concurrency@@YAPAUIResourceManager@1@XZ
; public: static class Concurrency::ScheduleGroup *__cdecl Concurrency::CurrentScheduler::CreateScheduleGroup(class Concurrency::location &)
?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@AAVlocation@2@@Z
; public: static class Concurrency::ScheduleGroup *__cdecl Concurrency::CurrentScheduler::CreateScheduleGroup(void)
?CreateScheduleGroup@CurrentScheduler@Concurrency@@SAPAVScheduleGroup@2@XZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; public: static class Concurrency::Context *__cdecl Concurrency::Context::CurrentContext(void)
?CurrentContext@Context@Concurrency@@SAPAV12@XZ
; public: static void __cdecl Concurrency::CurrentScheduler::Detach(void)
?Detach@CurrentScheduler@Concurrency@@SAXXZ
; long __cdecl Concurrency::DisableTracing(void)
?DisableTracing@Concurrency@@YAJXZ
; long __cdecl Concurrency::EnableTracing(void)
?EnableTracing@Concurrency@@YAJXZ
; void __cdecl Concurrency::Free(void *)
?Free@Concurrency@@YAXPAX@Z
; public: static class Concurrency::Scheduler *__cdecl Concurrency::CurrentScheduler::Get(void)
?Get@CurrentScheduler@Concurrency@@SAPAVScheduler@2@XZ
; unsigned int __cdecl Concurrency::GetExecutionContextId(void)
?GetExecutionContextId@Concurrency@@YAIXZ
; public: static unsigned int __cdecl Concurrency::CurrentScheduler::GetNumberOfVirtualProcessors(void)
?GetNumberOfVirtualProcessors@CurrentScheduler@Concurrency@@SAIXZ
; enum Concurrency::IResourceManager::OSVersion __cdecl Concurrency::GetOSVersion(void)
?GetOSVersion@Concurrency@@YA?AW4OSVersion@IResourceManager@1@XZ
; public: static class Concurrency::SchedulerPolicy __cdecl Concurrency::CurrentScheduler::GetPolicy(void)
?GetPolicy@CurrentScheduler@Concurrency@@SA?AVSchedulerPolicy@2@XZ
; public: unsigned int __thiscall Concurrency::SchedulerPolicy::GetPolicyValue(enum Concurrency::PolicyElementKey)const 
?GetPolicyValue@SchedulerPolicy@Concurrency@@QBEIW4PolicyElementKey@2@@Z ; has WINAPI (@4)
; unsigned int __cdecl Concurrency::GetProcessorCount(void)
?GetProcessorCount@Concurrency@@YAIXZ
; unsigned int __cdecl Concurrency::GetProcessorNodeCount(void)
?GetProcessorNodeCount@Concurrency@@YAIXZ
; unsigned int __cdecl Concurrency::GetSchedulerId(void)
?GetSchedulerId@Concurrency@@YAIXZ
; void *__cdecl Concurrency::details::GetSharedTimerQueue(void)
?GetSharedTimerQueue@details@Concurrency@@YAPAXXZ
; public: static unsigned int __cdecl Concurrency::Context::Id(void)
?Id@Context@Concurrency@@SAIXZ
; public: static unsigned int __cdecl Concurrency::CurrentScheduler::Id(void)
?Id@CurrentScheduler@Concurrency@@SAIXZ
; public: static bool __cdecl Concurrency::CurrentScheduler::IsAvailableLocation(class Concurrency::location const &)
?IsAvailableLocation@CurrentScheduler@Concurrency@@SA_NABVlocation@2@@Z
; public: static bool __cdecl Concurrency::Context::IsCurrentTaskCollectionCanceling(void)
?IsCurrentTaskCollectionCanceling@Context@Concurrency@@SA_NXZ
; unsigned long __cdecl Concurrency::details::Log2(unsigned int)
?Log2@details@Concurrency@@YAKI@Z
; public: static void __cdecl Concurrency::Context::Oversubscribe(bool)
?Oversubscribe@Context@Concurrency@@SAX_N@Z
; public: static void __cdecl Concurrency::CurrentScheduler::RegisterShutdownEvent(void *)
?RegisterShutdownEvent@CurrentScheduler@Concurrency@@SAXPAX@Z
; public: static void __cdecl Concurrency::Scheduler::ResetDefaultSchedulerPolicy(void)
?ResetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXXZ
; public: static unsigned int __cdecl Concurrency::Context::ScheduleGroupId(void)
?ScheduleGroupId@Context@Concurrency@@SAIXZ
; public: static void __cdecl Concurrency::CurrentScheduler::ScheduleTask(void(__cdecl *)(void *),void *)
?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0@Z
; public: static void __cdecl Concurrency::CurrentScheduler::ScheduleTask(void(__cdecl *)(void *),void *,class Concurrency::location &)
?ScheduleTask@CurrentScheduler@Concurrency@@SAXP6AXPAX@Z0AAVlocation@2@@Z
; public: void __thiscall Concurrency::SchedulerPolicy::SetConcurrencyLimits(unsigned int,unsigned int)
?SetConcurrencyLimits@SchedulerPolicy@Concurrency@@QAEXII@Z ; has WINAPI (@8)
; public: static void __cdecl Concurrency::Scheduler::SetDefaultSchedulerPolicy(class Concurrency::SchedulerPolicy const &)
?SetDefaultSchedulerPolicy@Scheduler@Concurrency@@SAXABVSchedulerPolicy@2@@Z
; public: unsigned int __thiscall Concurrency::SchedulerPolicy::SetPolicyValue(enum Concurrency::PolicyElementKey,unsigned int)
?SetPolicyValue@SchedulerPolicy@Concurrency@@QAEIW4PolicyElementKey@2@I@Z ; has WINAPI (@8)
; public: static unsigned int __cdecl Concurrency::Context::VirtualProcessorId(void)
?VirtualProcessorId@Context@Concurrency@@SAIXZ
; public: static void __cdecl Concurrency::Context::Yield(void)
?Yield@Context@Concurrency@@SAXXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; private: void __thiscall Concurrency::details::_StructuredTaskCollection::_Abort(void)
?_Abort@_StructuredTaskCollection@details@Concurrency@@AAEXXZ
; public: void __thiscall Concurrency::details::_NonReentrantBlockingLock::_Acquire(void)
?_Acquire@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_NonReentrantPPLLock::_Acquire(void *)
?_Acquire@_NonReentrantPPLLock@details@Concurrency@@QAEXPAX@Z ; has WINAPI (@4)
; public: void __thiscall Concurrency::details::_ReentrantBlockingLock::_Acquire(void)
?_Acquire@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_ReentrantLock::_Acquire(void)
?_Acquire@_ReentrantLock@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_ReentrantPPLLock::_Acquire(void *)
?_Acquire@_ReentrantPPLLock@details@Concurrency@@QAEXPAX@Z ; has WINAPI (@4)
; public: void __thiscall Concurrency::details::_ReaderWriterLock::_AcquireRead(void)
?_AcquireRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_ReaderWriterLock::_AcquireWrite(void)
?_AcquireWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_CancellationTokenState::_Cancel(void)
?_Cancel@_CancellationTokenState@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_StructuredTaskCollection::_Cancel(void)
?_Cancel@_StructuredTaskCollection@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_TaskCollection::_Cancel(void)
?_Cancel@_TaskCollection@details@Concurrency@@QAEXXZ
; protected: void __thiscall Concurrency::details::_UnrealizedChore::_CheckTaskCollection(void)
?_CheckTaskCollection@_UnrealizedChore@details@Concurrency@@IAEXXZ
; private: void __thiscall Concurrency::details::_StructuredTaskCollection::_CleanupToken(void)
?_CleanupToken@_StructuredTaskCollection@details@Concurrency@@AAEXXZ
; void __cdecl Concurrency::details::_ConcRT_CoreAssert(char const *,char const *,int)
?_ConcRT_CoreAssert@details@Concurrency@@YAXPBD0H@Z ; has WINAPI (@0)
; void __cdecl Concurrency::details::_ConcRT_Trace(int,wchar_t const *,...)
?_ConcRT_Trace@details@Concurrency@@YAXHPB_WZZ
; public: bool __thiscall Concurrency::details::_Cancellation_beacon::_Confirm_cancel(void)
?_Confirm_cancel@_Cancellation_beacon@details@Concurrency@@QAE_NXZ
; private: void __thiscall std::exception::_Copy_str(char const *)
?_Copy_str@exception@std@@AAEXPBD@Z ; has WINAPI (@4)
; public: static class Concurrency::details::_Context __cdecl Concurrency::details::_Context::_CurrentContext(void)
?_CurrentContext@_Context@details@Concurrency@@SA?AV123@XZ
; public: static class Concurrency::location __cdecl Concurrency::location::_Current_node(void)
?_Current_node@location@Concurrency@@SA?AV12@XZ
; public: void __thiscall Concurrency::details::_CancellationTokenState::_DeregisterCallback(class Concurrency::details::_CancellationTokenRegistration *)
?_DeregisterCallback@_CancellationTokenState@details@Concurrency@@QAEXPAV_CancellationTokenRegistration@23@@Z ; has WINAPI (@4)
; private: virtual void __thiscall Concurrency::details::_AsyncTaskCollection::_Destroy(void)
?_Destroy@_AsyncTaskCollection@details@Concurrency@@EAEXXZ
; private: virtual void __thiscall Concurrency::details::_CancellationTokenState::_Destroy(void)
?_Destroy@_CancellationTokenState@details@Concurrency@@EAEXXZ
; protected: void __thiscall Concurrency::details::<0x1ULL>::_DoYield(void)
?_DoYield@?$_SpinWait@$00@details@Concurrency@@IAEXXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; protected: void __thiscall Concurrency::details::<0x0ULL>::_DoYield(void)
?_DoYield@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ
; public: static class Concurrency::details::_Scheduler __cdecl Concurrency::details::_CurrentScheduler::_Get(void)
?_Get@_CurrentScheduler@details@Concurrency@@SA?AV_Scheduler@23@XZ
; struct Concurrency::details::_CONCRT_TRACE_INFO const *__cdecl Concurrency::_GetConcRTTraceInfo(void)
?_GetConcRTTraceInfo@Concurrency@@YAPBU_CONCRT_TRACE_INFO@details@1@XZ
; unsigned int __cdecl Concurrency::details::_GetConcurrency(void)
?_GetConcurrency@details@Concurrency@@YAIXZ
; private: static unsigned int &__cdecl Concurrency::details::_StackGuard::_GetCurrentInlineDepth(void)
?_GetCurrentInlineDepth@_StackGuard@details@Concurrency@@CAAAIXZ
; public: static unsigned int __cdecl Concurrency::details::_CurrentScheduler::_GetNumberOfVirtualProcessors(void)
?_GetNumberOfVirtualProcessors@_CurrentScheduler@details@Concurrency@@SAIXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; public: class Concurrency::Scheduler *__thiscall Concurrency::details::_Scheduler::_GetScheduler(void)
?_GetScheduler@_Scheduler@details@Concurrency@@QAEPAVScheduler@3@XZ
; public: static unsigned int __cdecl Concurrency::details::_CurrentScheduler::_Id(void)
?_Id@_CurrentScheduler@details@Concurrency@@SAIXZ
; private: void __thiscall Concurrency::details::_CancellationTokenRegistration::_Invoke(void)
?_Invoke@_CancellationTokenRegistration@details@Concurrency@@AAEXXZ
; public: bool __thiscall Concurrency::details::_StructuredTaskCollection::_IsCanceling(void)
?_IsCanceling@_StructuredTaskCollection@details@Concurrency@@QAE_NXZ
; public: bool __thiscall Concurrency::details::_TaskCollection::_IsCanceling(void)
?_IsCanceling@_TaskCollection@details@Concurrency@@QAE_NXZ
; public: bool __thiscall Concurrency::details::_Context::_IsSynchronouslyBlocked(void)const 
?_IsSynchronouslyBlocked@_Context@details@Concurrency@@QBE_NXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; private: static char const *__cdecl type_info::_Name_base(class type_info const *,struct __type_info_node *)
?_Name_base@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z
; private: static char const *__cdecl type_info::_Name_base_internal(class type_info const *,struct __type_info_node *)
?_Name_base_internal@type_info@@CAPBDPBV1@PAU__type_info_node@@@Z
; public: static class Concurrency::details::_AsyncTaskCollection *__cdecl Concurrency::details::_AsyncTaskCollection::_NewCollection(class Concurrency::details::_CancellationTokenState *)
?_NewCollection@_AsyncTaskCollection@details@Concurrency@@SAPAV123@PAV_CancellationTokenState@23@@Z
; public: static class Concurrency::details::_CancellationTokenState *__cdecl Concurrency::details::_CancellationTokenState::_NewTokenState(void)
?_NewTokenState@_CancellationTokenState@details@Concurrency@@SAPAV123@XZ
; protected: unsigned long __thiscall Concurrency::details::<0x1ULL>::_NumberOfSpins(void)
?_NumberOfSpins@?$_SpinWait@$00@details@Concurrency@@IAEKXZ
; protected: unsigned long __thiscall Concurrency::details::<0x0ULL>::_NumberOfSpins(void)
?_NumberOfSpins@?$_SpinWait@$0A@@details@Concurrency@@IAEKXZ
; public: static void __cdecl Concurrency::details::_Context::_Oversubscribe(bool)
?_Oversubscribe@_Context@details@Concurrency@@SAX_N@Z
; public: unsigned int __thiscall Concurrency::details::_Scheduler::_Reference(void)
?_Reference@_Scheduler@details@Concurrency@@QAEIXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; public: class Concurrency::details::_CancellationTokenRegistration *__thiscall Concurrency::details::_CancellationTokenState::_RegisterCallback(void(__cdecl *)(void *),void *,int)
?_RegisterCallback@_CancellationTokenState@details@Concurrency@@QAEPAV_CancellationTokenRegistration@23@P6AXPAX@Z0H@Z ; has WINAPI (@12)
; public: void __thiscall Concurrency::details::_CancellationTokenState::_RegisterCallback(class Concurrency::details::_CancellationTokenRegistration *)
?_RegisterCallback@_CancellationTokenState@details@Concurrency@@QAEXPAV_CancellationTokenRegistration@23@@Z ; has WINAPI (@4)
; public: void __thiscall Concurrency::details::_NonReentrantBlockingLock::_Release(void)
?_Release@_NonReentrantBlockingLock@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_NonReentrantPPLLock::_Release(void)
?_Release@_NonReentrantPPLLock@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_ReentrantBlockingLock::_Release(void)
?_Release@_ReentrantBlockingLock@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_ReentrantLock::_Release(void)
?_Release@_ReentrantLock@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_ReentrantPPLLock::_Release(void)
?_Release@_ReentrantPPLLock@details@Concurrency@@QAEXXZ
; public: unsigned int __thiscall Concurrency::details::_Scheduler::_Release(void)
?_Release@_Scheduler@details@Concurrency@@QAEIXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; public: void __thiscall Concurrency::details::_ReaderWriterLock::_ReleaseRead(void)
?_ReleaseRead@_ReaderWriterLock@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_ReaderWriterLock::_ReleaseWrite(void)
?_ReleaseWrite@_ReaderWriterLock@details@Concurrency@@QAEXXZ
; void __cdecl Concurrency::details::_ReportUnobservedException(void)
?_ReportUnobservedException@details@Concurrency@@YAXXZ
; protected: void __thiscall Concurrency::details::<0x1ULL>::_Reset(void)
?_Reset@?$_SpinWait@$00@details@Concurrency@@IAEXXZ
; protected: void __thiscall Concurrency::details::<0x0ULL>::_Reset(void)
?_Reset@?$_SpinWait@$0A@@details@Concurrency@@IAEXXZ
; public: enum Concurrency::details::_TaskCollectionStatus __stdcall Concurrency::details::_StructuredTaskCollection::_RunAndWait(class Concurrency::details::_UnrealizedChore *)
?_RunAndWait@_StructuredTaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z ; has WINAPI (@8)
; public: enum Concurrency::details::_TaskCollectionStatus __stdcall Concurrency::details::_TaskCollection::_RunAndWait(class Concurrency::details::_UnrealizedChore *)
?_RunAndWait@_TaskCollection@details@Concurrency@@QAG?AW4_TaskCollectionStatus@23@PAV_UnrealizedChore@23@@Z ; has WINAPI (@8)
; public: void __thiscall Concurrency::details::_StructuredTaskCollection::_Schedule(class Concurrency::details::_UnrealizedChore *)
?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z ; has WINAPI (@4)
; public: void __thiscall Concurrency::details::_StructuredTaskCollection::_Schedule(class Concurrency::details::_UnrealizedChore *,class Concurrency::location *)
?_Schedule@_StructuredTaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@PAVlocation@3@@Z ; has WINAPI (@8)
; public: void __thiscall Concurrency::details::_TaskCollection::_Schedule(class Concurrency::details::_UnrealizedChore *)
?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@@Z ; has WINAPI (@4)
; public: void __thiscall Concurrency::details::_TaskCollection::_Schedule(class Concurrency::details::_UnrealizedChore *,class Concurrency::location *)
?_Schedule@_TaskCollection@details@Concurrency@@QAEXPAV_UnrealizedChore@23@PAVlocation@3@@Z ; has WINAPI (@8)
; public: static void __cdecl Concurrency::details::_CurrentScheduler::_ScheduleTask(void(__cdecl *)(void *),void *)
?_ScheduleTask@_CurrentScheduler@details@Concurrency@@SAXP6AXPAX@Z0@Z
; public: void __thiscall Concurrency::details::<0x1ULL>::_SetSpinCount(unsigned int)
?_SetSpinCount@?$_SpinWait@$00@details@Concurrency@@QAEXI@Z ; has WINAPI (@4)
; public: void __thiscall Concurrency::details::<0x0ULL>::_SetSpinCount(unsigned int)
?_SetSpinCount@?$_SpinWait@$0A@@details@Concurrency@@QAEXI@Z ; has WINAPI (@4)
; void __cdecl Concurrency::details::_SetUnobservedExceptionHandler(void(__cdecl *)(void))
?_SetUnobservedExceptionHandler@details@Concurrency@@YAXP6AXXZ@Z
; protected: bool __thiscall Concurrency::details::<0x1ULL>::_ShouldSpinAgain(void)
?_ShouldSpinAgain@?$_SpinWait@$00@details@Concurrency@@IAE_NXZ
; protected: bool __thiscall Concurrency::details::<0x0ULL>::_ShouldSpinAgain(void)
?_ShouldSpinAgain@?$_SpinWait@$0A@@details@Concurrency@@IAE_NXZ
; public: bool __thiscall Concurrency::details::<0x1ULL>::_SpinOnce(void)
?_SpinOnce@?$_SpinWait@$00@details@Concurrency@@QAE_NXZ
; public: bool __thiscall Concurrency::details::<0x0ULL>::_SpinOnce(void)
?_SpinOnce@?$_SpinWait@$0A@@details@Concurrency@@QAE_NXZ
; public: static void __cdecl Concurrency::Context::_SpinYield(void)
?_SpinYield@Context@Concurrency@@SAXXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; protected: void __thiscall Concurrency::details::_Timer::_Start(void)
?_Start@_Timer@details@Concurrency@@IAEXXZ
; protected: void __thiscall Concurrency::details::_Timer::_Stop(void)
?_Stop@_Timer@details@Concurrency@@IAEXXZ
; private: void __thiscall std::exception::_Tidy(void)
?_Tidy@exception@std@@AAEXXZ
; void __cdecl Concurrency::_Trace_agents(enum Concurrency::Agents_EventType,__int64,...)
?_Trace_agents@Concurrency@@YAXW4Agents_EventType@1@_JZZ
; void __cdecl Concurrency::_Trace_ppl_function(struct _GUID const &,unsigned char,enum Concurrency::ConcRT_EventType)
?_Trace_ppl_function@Concurrency@@YAXABU_GUID@@EW4ConcRT_EventType@1@@Z
; public: bool __thiscall Concurrency::details::_NonReentrantBlockingLock::_TryAcquire(void)
?_TryAcquire@_NonReentrantBlockingLock@details@Concurrency@@QAE_NXZ
; public: bool __thiscall Concurrency::details::_ReentrantBlockingLock::_TryAcquire(void)
?_TryAcquire@_ReentrantBlockingLock@details@Concurrency@@QAE_NXZ
; public: bool __thiscall Concurrency::details::_ReentrantLock::_TryAcquire(void)
?_TryAcquire@_ReentrantLock@details@Concurrency@@QAE_NXZ
; public: bool __thiscall Concurrency::details::_ReaderWriterLock::_TryAcquireWrite(void)
?_TryAcquireWrite@_ReaderWriterLock@details@Concurrency@@QAE_NXZ
; private: static void __cdecl type_info::_Type_info_dtor(class type_info *)
?_Type_info_dtor@type_info@@CAXPAV1@@Z
; private: static void __cdecl type_info::_Type_info_dtor_internal(class type_info *)
?_Type_info_dtor_internal@type_info@@CAXPAV1@@Z
; void __cdecl Concurrency::details::_UnderlyingYield(void)
?_UnderlyingYield@details@Concurrency@@YAXXZ ; has WINAPI (@0)
; int __cdecl _ValidateExecute(int(__stdcall *)(void))
?_ValidateExecute@@YAHP6GHXZ@Z
; int __cdecl _ValidateRead(void const *,unsigned int)
?_ValidateRead@@YAHPBXI@Z
; int __cdecl _ValidateWrite(void *,unsigned int)
?_ValidateWrite@@YAHPAXI@Z
; public: static unsigned int __cdecl Concurrency::details::_SpinCount::_Value(void)
?_Value@_SpinCount@details@Concurrency@@SAIXZ
; public: static void __cdecl Concurrency::details::_Context::_Yield(void)
?_Yield@_Context@details@Concurrency@@SAXXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; void __cdecl __ExceptionPtrAssign(void *,void const *)
?__ExceptionPtrAssign@@YAXPAXPBX@Z
; bool __cdecl __ExceptionPtrCompare(void const *,void const *)
?__ExceptionPtrCompare@@YA_NPBX0@Z
; void __cdecl __ExceptionPtrCopy(void *,void const *)
?__ExceptionPtrCopy@@YAXPAXPBX@Z
; void __cdecl __ExceptionPtrCopyException(void *,void const *,void const *)
?__ExceptionPtrCopyException@@YAXPAXPBX1@Z
; void __cdecl __ExceptionPtrCreate(void *)
?__ExceptionPtrCreate@@YAXPAX@Z
; void __cdecl __ExceptionPtrCurrentException(void *)
?__ExceptionPtrCurrentException@@YAXPAX@Z
; void __cdecl __ExceptionPtrDestroy(void *)
?__ExceptionPtrDestroy@@YAXPAX@Z
; void __cdecl __ExceptionPtrRethrow(void const *)
?__ExceptionPtrRethrow@@YAXPBX@Z
; void __cdecl __ExceptionPtrSwap(void *,void *)
?__ExceptionPtrSwap@@YAXPAX0@Z
; bool __cdecl __ExceptionPtrToBool(void const *)
?__ExceptionPtrToBool@@YA_NPBX@Z
__uncaught_exception
; void __cdecl _inconsistency(void)
?_inconsistency@@YAXXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; void __cdecl _invalid_parameter(unsigned short const *,unsigned short const *,unsigned short const *,unsigned int,unsigned int)
?_invalid_parameter@@YAXPBG00II@Z ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; int __cdecl _is_exception_typeof(class type_info const &,struct _EXCEPTION_POINTERS *)
?_is_exception_typeof@@YAHABVtype_info@@PAU_EXCEPTION_POINTERS@@@Z
; public: char const *__thiscall type_info::_name_internal_method(struct __type_info_node *)const 
?_name_internal_method@type_info@@QBEPBDPAU__type_info_node@@@Z ; has WINAPI (@4)
; int __cdecl _open(char const *,int,int)
?_open@@YAHPBDHH@Z
; int(__cdecl *)(unsigned int)__cdecl _query_new_handler(void)
?_query_new_handler@@YAP6AHI@ZXZ
; int __cdecl _query_new_mode(void)
?_query_new_mode@@YAHXZ
; int(__cdecl *)(unsigned int)__cdecl _set_new_handler(int)
?_set_new_handler@@YAP6AHI@ZH@Z
; int(__cdecl *)(unsigned int)__cdecl _set_new_handler(int(__cdecl *)(unsigned int))
?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z
; int __cdecl _set_new_mode(int)
?_set_new_mode@@YAHH@Z
; void(__cdecl *)(unsigned int,struct _EXCEPTION_POINTERS *)__cdecl _set_se_translator(int)
?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZH@Z
; void(__cdecl *)(unsigned int,struct _EXCEPTION_POINTERS *)__cdecl _set_se_translator(void(__cdecl *)(unsigned int,struct _EXCEPTION_POINTERS *))
?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z
; int __cdecl _sopen(char const *,int,int,int)
?_sopen@@YAHPBDHHH@Z
; public: void __thiscall type_info::_type_info_dtor_internal_method(void)
?_type_info_dtor_internal_method@type_info@@QAEXXZ
; int __cdecl _wopen(wchar_t const *,int,int)
?_wopen@@YAHPB_WHH@Z
; int __cdecl _wsopen(wchar_t const *,int,int,int)
?_wsopen@@YAHPB_WHHH@Z
; public: bool __thiscall type_info::before(class type_info const &)const 
?before@type_info@@QBE_NABV1@@Z ; has WINAPI (@4)
; public: static class Concurrency::location __cdecl Concurrency::location::current(void)
?current@location@Concurrency@@SA?AV12@XZ
; public: static class Concurrency::location __cdecl Concurrency::location::from_numa_node(unsigned short)
?from_numa_node@location@Concurrency@@SA?AV12@G@Z
; public: long __thiscall Concurrency::scheduler_resource_allocation_error::get_error_code(void)const 
?get_error_code@scheduler_resource_allocation_error@Concurrency@@QBEJXZ
; public: void __thiscall Concurrency::critical_section::lock(void)
?lock@critical_section@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::reader_writer_lock::lock(void)
?lock@reader_writer_lock@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::reader_writer_lock::lock_read(void)
?lock_read@reader_writer_lock@Concurrency@@QAEXXZ
; public: char const *__thiscall type_info::name(struct __type_info_node *)const 
?name@type_info@@QBEPBDPAU__type_info_node@@@Z ; has WINAPI (@4)
; public: class Concurrency::critical_section &__thiscall Concurrency::critical_section::native_handle(void)
?native_handle@critical_section@Concurrency@@QAEAAV12@XZ
; public: void __thiscall Concurrency::details::_Condition_variable::notify_all(void)
?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::details::_Condition_variable::notify_one(void)
?notify_one@_Condition_variable@details@Concurrency@@QAEXXZ
; public: char const *__thiscall type_info::raw_name(void)const 
?raw_name@type_info@@QBEPBDXZ
; public: void __thiscall Concurrency::event::reset(void)
?reset@event@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::event::set(void)
?set@event@Concurrency@@QAEXXZ
; void(__cdecl *)(void)__cdecl set_new_handler(void(__cdecl *)(void))
?set_new_handler@@YAP6AXXZP6AXXZ@Z
; void __cdecl Concurrency::set_task_execution_resources(unsigned short,struct _GROUP_AFFINITY *)
?set_task_execution_resources@Concurrency@@YAXGPAU_GROUP_AFFINITY@@@Z
; void __cdecl Concurrency::set_task_execution_resources(unsigned long)
?set_task_execution_resources@Concurrency@@YAXK@Z
; void(__cdecl *)(void)__cdecl set_terminate(int)
?set_terminate@@YAP6AXXZH@Z
; void(__cdecl *)(void)__cdecl set_terminate(void(__cdecl *)(void))
?set_terminate@@YAP6AXXZP6AXXZ@Z
; void(__cdecl *)(void)__cdecl set_unexpected(int)
?set_unexpected@@YAP6AXXZH@Z
; void(__cdecl *)(void)__cdecl set_unexpected(void(__cdecl *)(void))
?set_unexpected@@YAP6AXXZP6AXXZ@Z
; int __cdecl swprintf(unsigned short *,unsigned int,unsigned short const *,...)
?swprintf@@YAHPAGIPBGZZ
; int __cdecl swprintf(wchar_t *,unsigned int,wchar_t const *,...)
?swprintf@@YAHPA_WIPB_WZZ
; void __cdecl terminate(void)
?terminate@@YAXXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; public: bool __thiscall Concurrency::critical_section::try_lock(void)
?try_lock@critical_section@Concurrency@@QAE_NXZ
; public: bool __thiscall Concurrency::reader_writer_lock::try_lock(void)
?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ
; public: bool __thiscall Concurrency::critical_section::try_lock_for(unsigned int)
?try_lock_for@critical_section@Concurrency@@QAE_NI@Z ; has WINAPI (@4)
; public: bool __thiscall Concurrency::reader_writer_lock::try_lock_read(void)
?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ
; void __cdecl unexpected(void)
?unexpected@@YAXXZ ; Check!!! Couldn't determine function argument count. Function doesn't return. 
; public: void __thiscall Concurrency::critical_section::unlock(void)
?unlock@critical_section@Concurrency@@QAEXXZ
; public: void __thiscall Concurrency::reader_writer_lock::unlock(void)
?unlock@reader_writer_lock@Concurrency@@QAEXXZ
; int __cdecl vswprintf(wchar_t *,unsigned int,wchar_t const *,char *)
?vswprintf@@YAHPA_WIPB_WPAD@Z
; void __cdecl Concurrency::wait(unsigned int)
?wait@Concurrency@@YAXI@Z
; public: void __thiscall Concurrency::details::_Condition_variable::wait(class Concurrency::critical_section &)
?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z ; has WINAPI (@4)
; public: unsigned int __thiscall Concurrency::event::wait(unsigned int)
?wait@event@Concurrency@@QAEII@Z ; has WINAPI (@4)
; public: bool __thiscall Concurrency::details::_Condition_variable::wait_for(class Concurrency::critical_section &,unsigned int)
?wait_for@_Condition_variable@details@Concurrency@@QAE_NAAVcritical_section@3@I@Z ; has WINAPI (@8)
; public: static unsigned int __cdecl Concurrency::event::wait_for_multiple(class Concurrency::event **,unsigned int,bool,unsigned int)
?wait_for_multiple@event@Concurrency@@SAIPAPAV12@I_NI@Z
; public: virtual char const *__thiscall std::exception::what(void)const 
?what@exception@std@@UBEPBDXZ
$I10_OUTPUT
_CIacos
_CIasin
_CIatan
_CIatan2
_CIcos
_CIcosh
_CIexp
_CIfmod
_CIlog
_CIlog10
_CIpow
_CIsin
_CIsinh
_CIsqrt
_CItan
_CItanh
_CRT_RTC_INIT
_CRT_RTC_INITW
_CreateFrameInfo
_CxxThrowException@8
_EH_prolog
_FindAndUnlinkFrame
_Getdays
_Getmonths
_Gettnames
_HUGE DATA
_IsExceptionObjectToBeDestroyed
_Lock_shared_ptr_spin_lock
_NLG_Dispatch2@4
_NLG_Return@12
_NLG_Return2
_Strftime
_Unlock_shared_ptr_spin_lock
_W_Getdays
_W_Getmonths
_W_Gettnames
_Wcsftime
_XcptFilter
__AdjustPointer
__BuildCatchObject
__BuildCatchObjectHelper
__CppXcptFilter
__CxxDetectRethrow
__CxxExceptionFilter
__CxxFrameHandler
__CxxFrameHandler2
__CxxFrameHandler3
__CxxLongjmpUnwind@4
__CxxQueryExceptionSize
__CxxRegisterExceptionObject
__CxxUnregisterExceptionObject
__DestructExceptionObject
__FrameUnwindFilter
__RTCastToVoid
__RTDynamicCast
__RTtypeid
__STRINGTOLD
__STRINGTOLD_L
__TypeMatch
___lc_codepage_func
___lc_collate_cp_func
___lc_locale_name_func
___mb_cur_max_func
___mb_cur_max_l_func
___setlc_active_func
___unguarded_readlc_active_add_func
__argc DATA
__argv DATA
__badioinfo DATA
__clean_type_info_names_internal
__control87_2
__create_locale
__crtCompareStringA
__crtCompareStringW
__crtGetShowWindowMode
__crtIsPackagedApp
__crtLCMapStringA
__crtLCMapStringW
__crtSetUnhandledExceptionFilter
__crtTerminateProcess
__crtUnhandledException
__daylight
__dllonexit
__doserrno
__dstbias
__fpecode
__free_locale
__get_current_locale
__get_flsindex
__get_tlsindex
__getmainargs
__initenv DATA
__iob_func
__isascii
__iscsym
__iscsymf
__iswcsym
__iswcsymf
__lconv DATA
__lconv_init
__libm_sse2_acos
__libm_sse2_acosf
__libm_sse2_asin
__libm_sse2_asinf
__libm_sse2_atan
__libm_sse2_atan2
__libm_sse2_atanf
__libm_sse2_cos
__libm_sse2_cosf
__libm_sse2_exp
__libm_sse2_expf
__libm_sse2_log
__libm_sse2_log10
__libm_sse2_log10f
__libm_sse2_logf
__libm_sse2_pow
__libm_sse2_powf
__libm_sse2_sin
__libm_sse2_sinf
__libm_sse2_tan
__libm_sse2_tanf
__mb_cur_max DATA
__p___argc
__p___argv
__p___initenv
__p___mb_cur_max
__p___wargv
__p___winitenv
__p__acmdln
__p__commode
__p__daylight
__p__dstbias
__p__environ
__p__fmode
__p__iob
__p__mbcasemap
__p__mbctype
__p__pctype
__p__pgmptr
__p__pwctype
__p__timezone
__p__tzname
__p__wcmdln
__p__wenviron
__p__wpgmptr
__pctype_func
__pioinfo DATA
__pwctype_func
__pxcptinfoptrs
__report_gsfailure
__set_app_type
__setlc_active DATA
__setusermatherr
__strncnt
__swprintf_l
__sys_errlist
__sys_nerr
__threadhandle@0
__threadid@0
__timezone
__toascii
__tzname
__unDName
__unDNameEx
__unDNameHelper
__unguarded_readlc_active DATA
__vswprintf_l
__wargv DATA
__wcserror
__wcserror_s
__wcsncnt
__wgetmainargs
__winitenv DATA
_abnormal_termination
_abs64
_access
_access_s
_acmdln DATA
_aligned_free
_aligned_malloc
_aligned_msize
_aligned_offset_malloc
_aligned_offset_realloc
_aligned_offset_recalloc
_aligned_realloc
_aligned_recalloc
_amsg_exit ; Check!!! Couldn't determine function argument count. Function doesn't return. 
_assert
_atodbl
_atodbl_l
_atof_l
_atoflt
_atoflt_l
_atoi64
_atoi64_l
_atoi_l
_atol_l
_atoldbl
_atoldbl_l
_beep
_beginthread
_beginthreadex
_byteswap_uint64
_byteswap_ulong
_byteswap_ushort
_c_exit
_cabs DATA
_callnewh
_calloc_crt
_cexit
_cgets
_cgets_s
_cgetws
_cgetws_s
_chdir
_chdrive
_chgsign
_chkesp
_chmod
_chsize
_chsize_s
_clearfp
_close
_commit
_commode DATA
_configthreadlocale
_control87
_controlfp
_controlfp_s
_copysign
_cprintf
_cprintf_l
_cprintf_p
_cprintf_p_l
_cprintf_s
_cprintf_s_l
_cputs
_cputws
_creat
_create_locale
_crt_debugger_hook
_cscanf
_cscanf_l
_cscanf_s
_cscanf_s_l
_ctime32
_ctime32_s
_ctime64
_ctime64_s
_cwait
_cwprintf
_cwprintf_l
_cwprintf_p
_cwprintf_p_l
_cwprintf_s
_cwprintf_s_l
_cwscanf
_cwscanf_l
_cwscanf_s
_cwscanf_s_l
_daylight DATA
_difftime32
_difftime64
_dosmaperr
_dstbias DATA
_dup
_dup2
_dupenv_s
_ecvt
_ecvt_s
_endthread ; Check!!! Couldn't determine function argument count. Function doesn't return. 
_endthreadex ; Check!!! Couldn't determine function argument count. Function doesn't return. 
_environ DATA
_eof
_errno
_except_handler2
_except_handler3
_except_handler4_common
_execl
_execle
_execlp
_execlpe
_execv
_execve
_execvp
_execvpe
_exit
_expand
_fclose_nolock
_fcloseall
_fcvt
_fcvt_s
_fdopen
_fflush_nolock
_fgetchar
_fgetwc_nolock
_fgetwchar
_filbuf
_filelength
_filelengthi64
_fileno
_findclose
_findfirst32
_findfirst32i64
_findfirst64
_findfirst64i32
_findnext32
_findnext32i64
_findnext64
_findnext64i32
_finite
_flsbuf
_flushall
_fmode DATA
_fpclass
_fpieee_flt
_fpreset
_fprintf_l
_fprintf_p
_fprintf_p_l
_fprintf_s_l
_fputchar
_fputwc_nolock
_fputwchar
_fread_nolock
_fread_nolock_s
_free_locale
_freea
_freea_s
_freefls@4
_fscanf_l
_fscanf_s_l
_fseek_nolock
_fseeki64
_fseeki64_nolock
_fsopen
_fstat32
_fstat32i64
_fstat64
_fstat64i32
_ftell_nolock
_ftelli64
_ftelli64_nolock
_ftime32
_ftime32_s
_ftime64
_ftime64_s
_ftol
_fullpath
_futime32
_futime64
_fwprintf_l
_fwprintf_p
_fwprintf_p_l
_fwprintf_s_l
_fwrite_nolock
_fwscanf_l
_fwscanf_s_l
_gcvt
_gcvt_s
_get_current_locale
_get_daylight
_get_doserrno
_get_dstbias
_get_errno
_get_fmode
_get_heap_handle
_get_invalid_parameter_handler
_get_osfhandle
_get_output_format
_get_pgmptr
_get_printf_count_output
_get_purecall_handler
_get_terminate
_get_timezone
_get_tzname
_get_unexpected
_get_wpgmptr
_getc_nolock
_getch
_getch_nolock
_getche
_getche_nolock
_getcwd
_getdcwd
_getdiskfree
_getdllprocaddr
_getdrive
_getdrives@0
_getmaxstdio
_getmbcp
_getpid@0
_getptd
_getsystime
_getw
_getwch
_getwch_nolock
_getwche
_getwche_nolock
_getws
_getws_s
_global_unwind2
_gmtime32
_gmtime32_s
_gmtime64
_gmtime64_s
_heapadd
_heapchk
_heapmin
_heapset
_heapused
_heapwalk
_hypot
_hypotf
_i64toa
_i64toa_s
_i64tow
_i64tow_s
_initptd
_initterm
_initterm_e
_inp
_inpd
_inpw
_invalid_parameter ; Check!!! Couldn't determine function argument count. Function doesn't return. 
_invalid_parameter_noinfo
_invalid_parameter_noinfo_noreturn ; Check!!! Couldn't determine function argument count. Function doesn't return. 
_invoke_watson
_iob DATA
_isalnum_l
_isalpha_l
_isatty
_iscntrl_l
_isctype
_isctype_l
_isdigit_l
_isgraph_l
_isleadbyte_l
_islower_l
_ismbbalnum
_ismbbalnum_l
_ismbbalpha
_ismbbalpha_l
_ismbbgraph
_ismbbgraph_l
_ismbbkalnum
_ismbbkalnum_l
_ismbbkana
_ismbbkana_l
_ismbbkprint
_ismbbkprint_l
_ismbbkpunct
_ismbbkpunct_l
_ismbblead
_ismbblead_l
_ismbbprint
_ismbbprint_l
_ismbbpunct
_ismbbpunct_l
_ismbbtrail
_ismbbtrail_l
_ismbcalnum
_ismbcalnum_l
_ismbcalpha
_ismbcalpha_l
_ismbcdigit
_ismbcdigit_l
_ismbcgraph
_ismbcgraph_l
_ismbchira
_ismbchira_l
_ismbckata
_ismbckata_l
_ismbcl0
_ismbcl0_l
_ismbcl1
_ismbcl1_l
_ismbcl2
_ismbcl2_l
_ismbclegal
_ismbclegal_l
_ismbclower
_ismbclower_l
_ismbcprint
_ismbcprint_l
_ismbcpunct
_ismbcpunct_l
_ismbcspace
_ismbcspace_l
_ismbcsymbol
_ismbcsymbol_l
_ismbcupper
_ismbcupper_l
_ismbslead
_ismbslead_l
_ismbstrail
_ismbstrail_l
_isnan
_isprint_l
_ispunct_l
_isspace_l
_isupper_l
_iswalnum_l
_iswalpha_l
_iswcntrl_l
_iswcsym_l
_iswcsymf_l
_iswctype_l
_iswdigit_l
_iswgraph_l
_iswlower_l
_iswprint_l
_iswpunct_l
_iswspace_l
_iswupper_l
_iswxdigit_l
_isxdigit_l
_itoa
_itoa_s
_itow
_itow_s
_j0
_j1
_jn
_kbhit
_lfind
_lfind_s
_libm_sse2_acos_precise
_libm_sse2_asin_precise
_libm_sse2_atan_precise
_libm_sse2_cos_precise
_libm_sse2_exp_precise
_libm_sse2_log10_precise
_libm_sse2_log_precise
_libm_sse2_pow_precise
_libm_sse2_sin_precise
_libm_sse2_sqrt_precise
_libm_sse2_tan_precise
_loaddll
_local_unwind2
_local_unwind4
_localtime32
_localtime32_s
_localtime64
_localtime64_s
_lock
_lock_file
_locking
_logb
_longjmpex ; Check!!! Couldn't determine function argument count. Function doesn't return. 
_lrotl
_lrotr
_lsearch
_lsearch_s
_lseek
_lseeki64
_ltoa
_ltoa_s
_ltow
_ltow_s
_makepath
_makepath_s
_malloc_crt
_mbbtombc
_mbbtombc_l
_mbbtype
_mbbtype_l
_mbcasemap DATA
_mbccpy
_mbccpy_l
_mbccpy_s
_mbccpy_s_l
_mbcjistojms
_mbcjistojms_l
_mbcjmstojis
_mbcjmstojis_l
_mbclen
_mbclen_l
_mbctohira
_mbctohira_l
_mbctokata
_mbctokata_l
_mbctolower
_mbctolower_l
_mbctombb
_mbctombb_l
_mbctoupper
_mbctoupper_l
_mbctype DATA
_mblen_l
_mbsbtype
_mbsbtype_l
_mbscat_s
_mbscat_s_l
_mbschr
_mbschr_l
_mbscmp
_mbscmp_l
_mbscoll
_mbscoll_l
_mbscpy_s
_mbscpy_s_l
_mbscspn
_mbscspn_l
_mbsdec
_mbsdec_l
_mbsicmp
_mbsicmp_l
_mbsicoll
_mbsicoll_l
_mbsinc
_mbsinc_l
_mbslen
_mbslen_l
_mbslwr
_mbslwr_l
_mbslwr_s
_mbslwr_s_l
_mbsnbcat
_mbsnbcat_l
_mbsnbcat_s
_mbsnbcat_s_l
_mbsnbcmp
_mbsnbcmp_l
_mbsnbcnt
_mbsnbcnt_l
_mbsnbcoll
_mbsnbcoll_l
_mbsnbcpy
_mbsnbcpy_l
_mbsnbcpy_s
_mbsnbcpy_s_l
_mbsnbicmp
_mbsnbicmp_l
_mbsnbicoll
_mbsnbicoll_l
_mbsnbset
_mbsnbset_l
_mbsnbset_s
_mbsnbset_s_l
_mbsncat
_mbsncat_l
_mbsncat_s
_mbsncat_s_l
_mbsnccnt
_mbsnccnt_l
_mbsncmp
_mbsncmp_l
_mbsncoll
_mbsncoll_l
_mbsncpy
_mbsncpy_l
_mbsncpy_s
_mbsncpy_s_l
_mbsnextc
_mbsnextc_l
_mbsnicmp
_mbsnicmp_l
_mbsnicoll
_mbsnicoll_l
_mbsninc
_mbsninc_l
_mbsnlen
_mbsnlen_l
_mbsnset
_mbsnset_l
_mbsnset_s
_mbsnset_s_l
_mbspbrk
_mbspbrk_l
_mbsrchr
_mbsrchr_l
_mbsrev
_mbsrev_l
_mbsset
_mbsset_l
_mbsset_s
_mbsset_s_l
_mbsspn
_mbsspn_l
_mbsspnp
_mbsspnp_l
_mbsstr
_mbsstr_l
_mbstok
_mbstok_l
_mbstok_s
_mbstok_s_l
_mbstowcs_l
_mbstowcs_s_l
_mbstrlen
_mbstrlen_l
_mbstrnlen
_mbstrnlen_l
_mbsupr
_mbsupr_l
_mbsupr_s
_mbsupr_s_l
_mbtowc_l
_memccpy
_memicmp
_memicmp_l
_mkdir
_mkgmtime32
_mkgmtime64
_mktemp
_mktemp_s
_mktime32
_mktime64
_msize
_nextafter
_onexit
_open
_open_osfhandle
_outp
_outpd
_outpw
_pclose
_pctype DATA
_pgmptr DATA
_pipe
_popen
_printf_l
_printf_p
_printf_p_l
_printf_s_l
_purecall ; Check!!! Couldn't determine function argument count. Function doesn't return. 
_putch
_putch_nolock
_putenv
_putenv_s
_putw
_putwch
_putwch_nolock
_putws
_pwctype DATA
_read
_realloc_crt
_recalloc
_recalloc_crt
_resetstkoflw
_rmdir
_rmtmp
_rotl
_rotl64
_rotr
_rotr64
_scalb
_scanf_l
_scanf_s_l
_scprintf
_scprintf_l
_scprintf_p
_scprintf_p_l
_scwprintf
_scwprintf_l
_scwprintf_p
_scwprintf_p_l
_searchenv
_searchenv_s
_seh_longjmp_unwind4@4
_seh_longjmp_unwind@4
_set_SSE2_enable
_set_abort_behavior
_set_controlfp
_set_doserrno
_set_errno
_set_error_mode
_set_fmode
_set_invalid_parameter_handler
_set_malloc_crt_max_wait
_set_output_format
_set_printf_count_output
_set_purecall_handler
_seterrormode
_setjmp
_setjmp3
_setmaxstdio
_setmbcp
_setmode
_setsystime
_sleep
_snprintf
_snprintf_c
_snprintf_c_l
_snprintf_l
_snprintf_s
_snprintf_s_l
_snscanf
_snscanf_l
_snscanf_s
_snscanf_s_l
_snwprintf
_snwprintf_l
_snwprintf_s
_snwprintf_s_l
_snwscanf
_snwscanf_l
_snwscanf_s
_snwscanf_s_l
_sopen
_sopen_s
_spawnl
_spawnle
_spawnlp
_spawnlpe
_spawnv
_spawnve
_spawnvp
_spawnvpe
_splitpath
_splitpath_s
_sprintf_l
_sprintf_p
_sprintf_p_l
_sprintf_s_l
_sscanf_l
_sscanf_s_l
_stat32
_stat32i64
_stat64
_stat64i32
_statusfp
_statusfp2
_strcoll_l
_strdate
_strdate_s
_strdup
_strerror
_strerror_s
_strftime_l
_stricmp
_stricmp_l
_stricoll
_stricoll_l
_strlwr
_strlwr_l
_strlwr_s
_strlwr_s_l
_strncoll
_strncoll_l
_strnicmp
_strnicmp_l
_strnicoll
_strnicoll_l
_strnset
_strnset_s
_strrev
_strset
_strset_s
_strtime
_strtime_s
_strtod_l
_strtoi64
_strtoi64_l
_strtol_l
_strtoui64
_strtoui64_l
_strtoul_l
_strupr
_strupr_l
_strupr_s
_strupr_s_l
_strxfrm_l
_swab
_swprintf
_swprintf_c
_swprintf_c_l
_swprintf_p
_swprintf_p_l
_swprintf_s_l
_swscanf_l
_swscanf_s_l
_sys_errlist DATA
_sys_nerr DATA
_tell
_telli64
_tempnam
_time32
_time64
_timezone DATA
_tolower
_tolower_l
_toupper
_toupper_l
_towlower_l
_towupper_l
_tzname DATA
_tzset
_ui64toa
_ui64toa_s
_ui64tow
_ui64tow_s
_ultoa
_ultoa_s
_ultow
_ultow_s
_umask
_umask_s
_ungetc_nolock
_ungetch
_ungetch_nolock
_ungetwc_nolock
_ungetwch
_ungetwch_nolock
_unlink
_unloaddll@0
_unlock
_unlock_file
_utime32
_utime64
_vcprintf
_vcprintf_l
_vcprintf_p
_vcprintf_p_l
_vcprintf_s
_vcprintf_s_l
_vcwprintf
_vcwprintf_l
_vcwprintf_p
_vcwprintf_p_l
_vcwprintf_s
_vcwprintf_s_l
_vfprintf_l
_vfprintf_p
_vfprintf_p_l
_vfprintf_s_l
_vfwprintf_l
_vfwprintf_p
_vfwprintf_p_l
_vfwprintf_s_l
_vprintf_l
_vprintf_p
_vprintf_p_l
_vprintf_s_l
_vscprintf
_vscprintf_l
_vscprintf_p
_vscprintf_p_l
_vscwprintf
_vscwprintf_l
_vscwprintf_p
_vscwprintf_p_l
_vsnprintf
_vsnprintf_c
_vsnprintf_c_l
_vsnprintf_l
_vsnprintf_s
_vsnprintf_s_l
_vsnwprintf
_vsnwprintf_l
_vsnwprintf_s
_vsnwprintf_s_l
_vsprintf_l
_vsprintf_p
_vsprintf_p_l
_vsprintf_s_l
_vswprintf
_vswprintf_c
_vswprintf_c_l
_vswprintf_l
_vswprintf_p
_vswprintf_p_l
_vswprintf_s_l
_vwprintf_l
_vwprintf_p
_vwprintf_p_l
_vwprintf_s_l
_waccess
_waccess_s
_wasctime
_wasctime_s
_wassert
_wchdir
_wchmod
_wcmdln DATA
_wcreat
_wcreate_locale
_wcscoll_l
_wcsdup
_wcserror
_wcserror_s
_wcsftime_l
_wcsicmp
_wcsicmp_l
_wcsicoll
_wcsicoll_l
_wcslwr
_wcslwr_l
_wcslwr_s
_wcslwr_s_l
_wcsncoll
_wcsncoll_l
_wcsnicmp
_wcsnicmp_l
_wcsnicoll
_wcsnicoll_l
_wcsnset
_wcsnset_s
_wcsrev
_wcsset
_wcsset_s
_wcstod_l
_wcstoi64
_wcstoi64_l
_wcstol_l
_wcstombs_l
_wcstombs_s_l
_wcstoui64
_wcstoui64_l
_wcstoul_l
_wcsupr
_wcsupr_l
_wcsupr_s
_wcsupr_s_l
_wcsxfrm_l
_wctime32
_wctime32_s
_wctime64
_wctime64_s
_wctomb_l
_wctomb_s_l
_wctype ; Check!!! Couldn't determine function argument count. Function doesn't return. 
_wdupenv_s
_wenviron DATA
_wexecl
_wexecle
_wexeclp
_wexeclpe
_wexecv
_wexecve
_wexecvp
_wexecvpe
_wfdopen
_wfindfirst32
_wfindfirst32i64
_wfindfirst64
_wfindfirst64i32
_wfindnext32
_wfindnext32i64
_wfindnext64
_wfindnext64i32
_wfopen
_wfopen_s
_wfreopen
_wfreopen_s
_wfsopen
_wfullpath
_wgetcwd
_wgetdcwd
_wgetenv
_wgetenv_s
_wmakepath
_wmakepath_s
_wmkdir
_wmktemp
_wmktemp_s
_wopen
_wperror
_wpgmptr DATA
_wpopen
_wprintf_l
_wprintf_p
_wprintf_p_l
_wprintf_s_l
_wputenv
_wputenv_s
_wremove
_wrename
_write
_wrmdir
_wscanf_l
_wscanf_s_l
_wsearchenv
_wsearchenv_s
_wsetlocale
_wsopen
_wsopen_s
_wspawnl
_wspawnle
_wspawnlp
_wspawnlpe
_wspawnv
_wspawnve
_wspawnvp
_wspawnvpe
_wsplitpath
_wsplitpath_s
_wstat32
_wstat32i64
_wstat64
_wstat64i32
_wstrdate
_wstrdate_s
_wstrtime
_wstrtime_s
_wsystem
_wtempnam
_wtmpnam
_wtmpnam_s
_wtof
_wtof_l
_wtoi
_wtoi64
_wtoi64_l
_wtoi_l
_wtol
_wtol_l
_wunlink
_wutime32
_wutime64
_y0
_y1
_yn
abort ; Check!!! Couldn't determine function argument count. Function doesn't return. 
abs
acos
asctime
asctime_s
asin
atan
atan2 DATA
atexit DATA
atof
atoi
atol
bsearch
bsearch_s
btowc
calloc
ceil DATA
clearerr
clearerr_s
clock
cos DATA
; If we implement cosh, we can set it to DATA only.
cosh
div
exit
exp DATA
fabs DATA
fclose
feof
ferror
fflush
fgetc
fgetpos
fgets
fgetwc
fgetws
floor DATA
fmod DATA
fopen
fopen_s
fprintf
fprintf_s
fputc
fputs
fputwc
fputws
fread
fread_s
free
freopen
freopen_s
frexp DATA
fscanf
fscanf_s
fseek
fsetpos
ftell
fwprintf
fwprintf_s
fwrite
fwscanf
fwscanf_s
getc
getchar
getenv
getenv_s
gets
gets_s
getwc
getwchar
is_wctype
isalnum
isalpha
iscntrl
isdigit
isgraph
isleadbyte
islower
isprint
ispunct
isspace
isupper
iswalnum
iswalpha
iswascii
iswcntrl
iswctype
iswdigit
iswgraph
iswlower
iswprint
iswpunct
iswspace
iswupper
iswxdigit
isxdigit
labs
ldexp DATA
ldiv
llabs
lldiv
localeconv
log DATA
; If we implement log10, we can set it to DATA only.
log10
longjmp
malloc
mblen
mbrlen
mbrtowc
mbsrtowcs
mbsrtowcs_s
mbstowcs
mbstowcs_s
mbtowc
memchr
memcmp
memcpy
memcpy_s
memmove
memmove_s
memset
modf DATA
perror
pow DATA
printf
printf_s
putc
putchar
puts
putwc
putwchar
qsort
qsort_s
raise
rand
rand_s
realloc
remove
rename
rewind
scanf
scanf_s
setbuf
setlocale
setvbuf
signal
sin DATA
; If we implement sinh, we can set it to DATA only.
sinh
sprintf
sprintf_s
sqrt DATA
srand
sscanf
sscanf_s
strcat
strcat_s
strchr
strcmp
strcoll
strcpy
strcpy_s
strcspn
strerror
strerror_s
strftime
strlen
strncat
strncat_s
strncmp
strncpy
strncpy_s
strnlen
strpbrk
strrchr
strspn
strstr
strtod
strtok
strtok_s
strtol
strtoul
strxfrm
swprintf_s
swscanf
swscanf_s
system
tan
; If we implement tanh, we can set it to DATA only.
tanh
tmpfile
tmpfile_s
tmpnam
tmpnam_s
tolower
toupper
towlower
towupper
ungetc
ungetwc
vfprintf
vfprintf_s
vfwprintf
vfwprintf_s
vprintf
vprintf_s
vsprintf
vsprintf_s
vswprintf_s
vwprintf
vwprintf_s
wcrtomb
wcrtomb_s
wcscat
wcscat_s
wcschr
wcscmp
wcscoll
wcscpy
wcscpy_s
wcscspn
wcsftime
wcslen
wcsncat
wcsncat_s
wcsncmp
wcsncpy
wcsncpy_s
wcsnlen
wcspbrk
wcsrchr
wcsrtombs
wcsrtombs_s
wcsspn
wcsstr
wcstod
wcstok
wcstok_s
wcstol
wcstombs
wcstombs_s
wcstoul
wcsxfrm
wctob
wctomb
wctomb_s
wmemcpy_s
wmemmove_s
wprintf
wprintf_s
wscanf
wscanf_s

#define WITH_ATOLL_ALIAS
#define WITH_ATOLL_L_ALIAS
#define WITH_IMAXABS_ALIAS
#define WITH_IMAXDIV_ALIAS
#define WITH_STRTO64_ALIAS
#define WITH_STRTO64_L_ALIAS
#include "crt-aliases.def.in"
