JavaScript:

Modules

Lecturer: Иo1lz

OUTLINE

  • Why Modulize?
  • Type of Module System
  • Example: MDN - Basic Modules
  • LAB: Modulize Authentication

Why Modulize?

2 real issues:

  • If everything can connect everything, it is difficult to look at any piece in isolation.
  • If you want to use any functionality from such a program in another program, rewrite one would be easier than disentangle it.

Big Ball of Mud

Large, structureless programs.

Everything stick together.

/* This file has been generated by the Hex-Rays decompiler.
   Copyright (c) 2007-2014 Hex-Rays <info@hex-rays.com>

   Detected compiler: GNU C++
*/

#include <windows.h>
#include <defs.h>


//-------------------------------------------------------------------------
// Function declarations

BOOL __cdecl std::__verify_grouping(const char *a1, unsigned int a2, const std::string *a3);
int __cdecl main(int argc, const char **argv, const char **envp);
int story(void);
int logo(void);
int pass(void);
bool *__cdecl event1(bool *a1);
bool *__cdecl event2(bool *a1);
bool *__cdecl runaway(bool *a1);
bool *__cdecl event3(bool *a1, bool *a2);
bool *__cdecl shock(bool *a1);
bool *__cdecl event4(bool *a1);
bool *__cdecl event5(bool *a1, bool *a2);
bool *__cdecl event6(bool *a1, bool *a2, bool *a3);
bool *__cdecl event7(bool *a1, bool *a2, bool *a3);
bool *__cdecl event8(bool *a1, bool *a2, bool *a3);
int __cdecl event9(bool *a1, bool *a2, bool *a3);
bool *__cdecl event10(bool *a1);
bool *__cdecl badend(bool *a1);
bool *__cdecl deadend(bool *a1);
bool *__cdecl nomalend(bool *a1);
bool *__cdecl theend(bool *a1);
int __cdecl __static_initialization_and_destruction_0(int a1, int a2);
int `global constructor keyed to'_main();
int `global destructor keyed to'_main();
// _DWORD parse_lsda_header(); weak
// _DWORD __cdecl check_exception_spec(_DWORD); weak
// int __cdecl __gxx_personality_sj0(int, int, int, int, int, unsigned __int8 *); idb
// _DWORD __cdecl std::ios_base::Init::~Init(std::ios_base::Init *__hidden this); idb
// _DWORD std::ios_base::Init::Init(std::ios_base::Init *__hidden this); idb
// _DWORD __cdecl __cxxabiv1::__terminate(void (*)(void)); idb
// _DWORD __cdecl __cxa_throw(_DWORD, _DWORD, _DWORD); weak
// _DWORD __cxa_rethrow(); weak
// int __cdecl __cxa_allocate_exception(size_t); idb
// _DWORD __cxa_get_globals_fast(); weak
// _DWORD __cdecl __cxa_begin_catch(_DWORD); weak
// _DWORD __cxa_end_catch(); weak
// _DWORD __cdecl std::ios_base::~ios_base(std::ios_base *this); idb
// _DWORD std::locale::facet::_S_get_c_name(std::locale::facet *__hidden this); idb
// _DWORD __cdecl std::locale::facet::~facet(std::locale::facet *this); idb
// _DWORD __cdecl std::locale::~locale(std::locale *this); idb
// void __cdecl operator delete(void *); idb
// _DWORD __cdecl std::ctype<char>::~ctype(_DWORD); weak
void __cdecl operator delete[](void *); // idb
// _DWORD __cdecl std::codecvt<char,char,int>::~codecvt(_DWORD); weak
// _DWORD __cdecl std::moneypunct<char,false>::_M_initialize_moneypunct(_DWORD); weak
// _DWORD __cdecl std::moneypunct<char,true>::_M_initialize_moneypunct(_DWORD); weak
// _DWORD __cdecl std::moneypunct<char,true>::~moneypunct(_DWORD); weak
// _DWORD __cdecl std::moneypunct<char,false>::~moneypunct(_DWORD); weak
// _DWORD __cdecl std::numpunct<char>::~numpunct(_DWORD); weak
// int __cdecl std::__basic_file<char>::~__basic_file(_DWORD); weak
// _DWORD __cdecl std::locale::facet::_S_destroy_c_locale(std::locale::facet *this, int **); idb
// _DWORD __cdecl std::locale::facet::_S_clone_c_locale(std::locale::facet *__hidden this, int **); idb
// _DWORD __cdecl std::runtime_error::~runtime_error(std::runtime_error *this); idb
// _DWORD __cdecl std::logic_error::~logic_error(std::logic_error *this); idb
// _DWORD __cdecl std::__timepunct<char>::_M_initialize_timepunct(_DWORD); weak
void __cdecl _fpreset();
// int __main(void); weak
// int __cdecl _Unwind_SjLj_Register(LPVOID lpTlsValue); idb
// _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD); weak
// _DWORD __cdecl _Unwind_SjLj_Resume(_DWORD); weak
// void *__usercall _alloca@<eax>(unsigned int size@<eax>);
// int __cdecl system(const char *);
void __gnu_cxx::__mt_alloc<char>::destroy();
void __gnu_cxx::__mt_alloc<char>::__mt_alloc();
void __gnu_cxx::__mt_alloc<char>::__mt_alloc();
void __gnu_cxx::__mt_alloc<char>::__mt_alloc();
void __gnu_cxx::__mt_alloc<char>::__mt_alloc();
void __gnu_cxx::__mt_alloc<char>::~__mt_alloc();
void __gnu_cxx::__mt_alloc<char>::~__mt_alloc();
void __gnu_cxx::__mt_alloc<wchar_t>::destroy();
void __gnu_cxx::__mt_alloc<wchar_t>::__mt_alloc();
void __gnu_cxx::__mt_alloc<wchar_t>::__mt_alloc();
void __gnu_cxx::__mt_alloc<wchar_t>::__mt_alloc();
void __gnu_cxx::__mt_alloc<wchar_t>::__mt_alloc();
void __gnu_cxx::__mt_alloc<wchar_t>::~__mt_alloc();
void __gnu_cxx::__mt_alloc<wchar_t>::~__mt_alloc();
void __gnu_cxx::__pool_alloc<char>::destroy();
void __gnu_cxx::__pool_alloc<char>::__pool_alloc();
void __gnu_cxx::__pool_alloc<char>::__pool_alloc();
void __gnu_cxx::__pool_alloc<char>::__pool_alloc();
void __gnu_cxx::__pool_alloc<char>::__pool_alloc();
void __gnu_cxx::__pool_alloc<char>::~__pool_alloc();
void __gnu_cxx::__pool_alloc<char>::~__pool_alloc();
void __gnu_cxx::__pool_alloc<wchar_t>::destroy();
void __gnu_cxx::__pool_alloc<wchar_t>::__pool_alloc();
void __gnu_cxx::__pool_alloc<wchar_t>::__pool_alloc();
void __gnu_cxx::__pool_alloc<wchar_t>::__pool_alloc();
void __gnu_cxx::__pool_alloc<wchar_t>::__pool_alloc();
void __gnu_cxx::__pool_alloc<wchar_t>::~__pool_alloc();
void __gnu_cxx::__pool_alloc<wchar_t>::~__pool_alloc();
int __cdecl __gnu_cxx::__mt_alloc<char>::address(int a1, int a2);
int __cdecl __gnu_cxx::__mt_alloc<char>::address(int a1, int a2);
signed int __gnu_cxx::__mt_alloc<char>::max_size();
int __cdecl __gnu_cxx::__mt_alloc<wchar_t>::address(int a1, int a2);
int __cdecl __gnu_cxx::__mt_alloc<wchar_t>::address(int a1, int a2);
signed int __gnu_cxx::__mt_alloc<wchar_t>::max_size();
int __cdecl __gnu_cxx::__pool_alloc<char>::address(int a1, int a2);
int __cdecl __gnu_cxx::__pool_alloc<char>::address(int a1, int a2);
signed int __gnu_cxx::__pool_alloc<char>::max_size();
int __cdecl __gnu_cxx::__pool_alloc<wchar_t>::address(int a1, int a2);
int __cdecl __gnu_cxx::__pool_alloc<wchar_t>::address(int a1, int a2);
signed int __gnu_cxx::__pool_alloc<wchar_t>::max_size();
int __cdecl std::istream::gcount(std::istream *this);
int __cdecl std::istream::sentry::operator bool(int a1);
int __cdecl std::ostream::sentry::operator bool(int a1);
int __cdecl std::string::end(std::string *this);
int __cdecl std::string::data(std::string *this);
int __cdecl std::string::size(std::string *this);
int __cdecl std::string::begin(std::string *this);
int __cdecl std::string::c_str(std::string *this);
int __cdecl std::string::length(std::string *this);
int __cdecl std::string::_M_data(std::string *this);
int __cdecl std::string::_M_iend(std::string *this);
// _DWORD __cdecl std::string::compare(std::string *this, const char *); idb
int __cdecl std::string::_M_ibegin(std::string *this);
// _DWORD __cdecl std::string::operator[](_DWORD, _DWORD); weak
int __cdecl std::moneypunct<char,false>::frac_digits(int a1);
int __cdecl std::moneypunct<char,false>::do_neg_format(int a1);
int __cdecl std::moneypunct<char,false>::do_pos_format(int a1);
int __cdecl std::moneypunct<char,false>::do_frac_digits(int a1);
int __cdecl std::moneypunct<char,false>::do_decimal_point(int a1);
int __cdecl std::moneypunct<char,false>::do_thousands_sep(int a1);
int __cdecl std::moneypunct<char,true>::frac_digits(int a1);
int __cdecl std::moneypunct<char,true>::do_neg_format(int a1);
int __cdecl std::moneypunct<char,true>::do_pos_format(int a1);
int __cdecl std::moneypunct<char,true>::do_frac_digits(int a1);
int __cdecl std::moneypunct<char,true>::do_decimal_point(int a1);
int __cdecl std::moneypunct<char,true>::do_thousands_sep(int a1);
void std::__timepunct<char>::_M_am_pm_format();
int __cdecl std::basic_streambuf<char,std::char_traits<char>>::pbase(int a1);
int __cdecl std::ctype<char>::do_widen(int a1, char a2);
int __cdecl std::ctype<char>::do_narrow(int a1, char a2);
int __cdecl std::collate<char>::compare(int a1);
int __cdecl std::messages<char>::open(int a1);
int __cdecl std::messages<char>::open(int a1);
int std::messages<char>::do_open();
void std::messages<char>::do_close();
int std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::do_date_order();
int __cdecl std::basic_ios<char,std::char_traits<char>>::exceptions(int a1);
int __cdecl std::basic_ios<char,std::char_traits<char>>::rdstate(int a1);
void std::allocator<char>::allocator();
void std::allocator<char>::allocator();
void std::allocator<char>::allocator();
void std::allocator<char>::allocator();
void std::allocator<char>::~allocator();
void std::allocator<char>::~allocator();
void std::allocator<wchar_t>::allocator();
void std::allocator<wchar_t>::allocator();
void std::allocator<wchar_t>::allocator();
void std::allocator<wchar_t>::allocator();
void std::allocator<wchar_t>::~allocator();
void std::allocator<wchar_t>::~allocator();
int __cdecl std::istream::operator>>(int a1, int (*a2)(void));
// _DWORD __cdecl std::istream::operator>>(_DWORD, _DWORD); weak
int __cdecl std::ostream::operator<<(int a1, int (*a2)(void));
int __cdecl std::string::_Alloc_hider::_Alloc_hider(int a1, int a2);
int __cdecl std::string::_Alloc_hider::_Alloc_hider(int a1, int a2);
_UNKNOWN *std::string::_S_empty_rep();
char *__cdecl std::string::_Rep::_M_refdata(std::string::_Rep *this);
_UNKNOWN *std::string::_Rep::_S_empty_rep();
// int __cdecl std::string::string(int, char *, int); idb
// _DWORD __cdecl std::string::~string(std::string *this); idb
int __cdecl std::moneypunct<char,false>::moneypunct(int a1, int a2, int a3);
int __cdecl std::moneypunct<char,false>::moneypunct(int a1, int a2);
int __cdecl std::moneypunct<char,true>::moneypunct(int a1, int a2, int a3);
int __cdecl std::moneypunct<char,true>::moneypunct(int a1, int a2);
int __cdecl std::__timepunct<char>::__timepunct(int a1, int a2, int a3);
int sub_439D91(); // weak
int __cdecl std::__timepunct<char>::__timepunct(int a1, int a2);
int sub_439F42(); // weak
int __cdecl std::__timepunct<char>::__timepunct(int a1, int a2, int a3);
int sub_43A001(); // weak
int __cdecl std::__timepunct<char>::__timepunct(int a1, int a2);
int sub_43A1B2(); // weak
int __cdecl std::range_error::~range_error(std::range_error *this);
int __cdecl std::range_error::~range_error(std::range_error *this);
void __cdecl std::ctype_byname<char>::~ctype_byname(void *a1);
int __cdecl std::ctype_byname<char>::~ctype_byname(int a1);
int __cdecl std::ctype_byname<char>::~ctype_byname(int a1);
void __cdecl std::domain_error::~domain_error(std::domain_error *this);
int __cdecl std::domain_error::~domain_error(std::domain_error *this);
int __cdecl std::length_error::~length_error(std::length_error *this);
int __cdecl std::length_error::~length_error(std::length_error *this);
int __cdecl std::out_of_range::~out_of_range(std::out_of_range *this);
int __cdecl std::out_of_range::~out_of_range(std::out_of_range *this);
// _DWORD __cdecl std::basic_filebuf<char,std::char_traits<char>>::close(_DWORD); weak
int __cdecl std::basic_filebuf<char,std::char_traits<char>>::~basic_filebuf(int a1);
int sub_43C9C0(); // weak
int __cdecl std::basic_filebuf<char,std::char_traits<char>>::~basic_filebuf(int a1);
int sub_43CA80(); // weak
void __cdecl std::codecvt_byname<char,char,int>::~codecvt_byname(void *a1);
int __cdecl std::codecvt_byname<char,char,int>::~codecvt_byname(int a1);
int __cdecl std::codecvt_byname<char,char,int>::~codecvt_byname(int a1);
int __cdecl std::overflow_error::~overflow_error(std::overflow_error *this);
int __cdecl std::overflow_error::~overflow_error(std::overflow_error *this);
int std::basic_streambuf<char,std::char_traits<char>>::sync();
void std::basic_streambuf<char,std::char_traits<char>>::imbue();
int __cdecl std::basic_streambuf<char,std::char_traits<char>>::setbuf(int a1);
signed int std::basic_streambuf<char,std::char_traits<char>>::overflow();
signed int std::basic_streambuf<char,std::char_traits<char>>::pbackfail();
int std::basic_streambuf<char,std::char_traits<char>>::showmanyc();
signed int std::basic_streambuf<char,std::char_traits<char>>::underflow();
int __cdecl std::basic_streambuf<char,std::char_traits<char>>::operator=(int a1);
void __cdecl std::messages_byname<char>::~messages_byname(void *a1);
int __cdecl std::messages_byname<char>::~messages_byname(int a1);
int __cdecl std::messages_byname<char>::~messages_byname(int a1);
void __cdecl std::numpunct_byname<char>::~numpunct_byname(void *a1);
int __cdecl std::numpunct_byname<char>::~numpunct_byname(int a1);
int __cdecl std::numpunct_byname<char>::~numpunct_byname(int a1);
void __cdecl std::time_get_byname<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get_byname(std::locale::facet *a1);
int __cdecl std::time_get_byname<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get_byname(std::locale::facet *); // idb
int __cdecl std::time_get_byname<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get_byname(std::locale::facet *); // idb
void __cdecl std::time_put_byname<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put_byname(std::locale::facet *a1);
int __cdecl std::time_put_byname<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put_byname(std::locale::facet *); // idb
int __cdecl std::time_put_byname<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put_byname(std::locale::facet *); // idb
int __cdecl std::underflow_error::~underflow_error(std::underflow_error *this);
int __cdecl std::underflow_error::~underflow_error(std::underflow_error *this);
int __cdecl std::invalid_argument::~invalid_argument(std::invalid_argument *this);
int __cdecl std::invalid_argument::~invalid_argument(std::invalid_argument *this);
void __cdecl std::__timepunct_cache<char>::~__timepunct_cache(std::locale::facet *a1);
int __cdecl std::__timepunct_cache<char>::~__timepunct_cache(std::locale::facet *); // idb
int __cdecl std::__timepunct_cache<char>::~__timepunct_cache(std::locale::facet *); // idb
void __cdecl std::moneypunct_byname<char,false>::~moneypunct_byname(void *a1);
int __cdecl std::moneypunct_byname<char,false>::~moneypunct_byname(int a1);
int __cdecl std::moneypunct_byname<char,false>::~moneypunct_byname(int a1);
void __cdecl std::moneypunct_byname<char,true>::~moneypunct_byname(void *a1);
int __cdecl std::moneypunct_byname<char,true>::~moneypunct_byname(int a1);
int __cdecl std::moneypunct_byname<char,true>::~moneypunct_byname(int a1);
void __cdecl std::__ctype_abstract_base<char>::~__ctype_abstract_base(std::locale::facet *a1);
int __cdecl std::__ctype_abstract_base<char>::~__ctype_abstract_base(std::locale::facet *); // idb
void __cdecl std::__codecvt_abstract_base<char,char,int>::~__codecvt_abstract_base(std::locale::facet *a1);
int __cdecl std::__codecvt_abstract_base<char,char,int>::~__codecvt_abstract_base(std::locale::facet *); // idb
int __cdecl std::collate<char>::collate(int a1, char a2, int a3);
int sub_443093(); // weak
int __cdecl std::collate<char>::collate(int a1, char a2, int a3);
int sub_4431F3(); // weak
int __cdecl std::collate<char>::~collate(std::locale::facet *a1);
void __cdecl std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~num_get(std::locale::facet *a1);
int __cdecl std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~num_get(std::locale::facet *); // idb
int __cdecl std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~num_get(std::locale::facet *); // idb
void __cdecl std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~num_put(std::locale::facet *a1);
int __cdecl std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~num_put(std::locale::facet *); // idb
int __cdecl std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~num_put(std::locale::facet *); // idb
int __cdecl std::messages<char>::~messages(std::locale::facet *a1);
// _DWORD __cdecl std::messages<char>::~messages(_DWORD); weak
void __cdecl std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get(std::locale::facet *a1);
int __cdecl std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get(std::locale::facet *); // idb
int __cdecl std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get(std::locale::facet *); // idb
void __cdecl std::time_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put(std::locale::facet *a1);
int __cdecl std::time_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put(std::locale::facet *); // idb
int __cdecl std::time_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put(std::locale::facet *); // idb
void __cdecl std::basic_ios<char,std::char_traits<char>>::~basic_ios(std::ios_base *a1);
int __cdecl std::basic_ios<char,std::char_traits<char>>::~basic_ios(std::ios_base *); // idb
int __cdecl std::basic_ios<char,std::char_traits<char>>::~basic_ios(std::ios_base *); // idb
void __cdecl std::money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~money_get(std::locale::facet *a1);
int __cdecl std::money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~money_get(std::locale::facet *); // idb
int __cdecl std::money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~money_get(std::locale::facet *); // idb
void __cdecl std::money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~money_put(std::locale::facet *a1);
int __cdecl std::money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~money_put(std::locale::facet *); // idb
int __cdecl std::money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~money_put(std::locale::facet *); // idb
int __cdecl std::min<unsigned int>(int a1, int a2);
// int __cdecl std::endl<char,std::char_traits<char>>(std::ostream *); idb
int __cdecl std::operator==<char,std::char_traits<char>,std::allocator<char>>(std::string *, char *); // idb
int __cdecl std::operator<<<std::char_traits<char>>(int a1, char *a2);
// int __cdecl std::operator<<<std::char_traits<char>>(int, char *); idb
int __cdecl std::operator<<<std::char_traits<char>>(int a1, char *a2);
int __cdecl std::operator<<<std::char_traits<char>>(int a1, char a2);
// _DWORD __cdecl std::operator<<<std::char_traits<char>>(_DWORD, _DWORD); weak
int __cdecl std::operator>><std::char_traits<char>>(int a1, int a2);
int __cdecl std::operator>><std::char_traits<char>>(int a1, int a2);
int __cdecl std::operator>><std::char_traits<char>>(int a1, int a2);
int __cdecl std::operator>><std::char_traits<char>>(int a1, int a2);
// _DWORD __cdecl std::operator>><char,std::char_traits<char>>(_DWORD, _DWORD); weak
// _DWORD __cdecl std::operator>><char,std::char_traits<char>>(_DWORD, _DWORD); weak
// _DWORD __cdecl std::operator>><char,std::char_traits<char>,std::allocator<char>>(_DWORD, _DWORD); weak

//-------------------------------------------------------------------------
// Data declarations

_UNKNOWN loc_40168C; // weak
_UNKNOWN sub_4396D0; // weak
_UNKNOWN sub_439850; // weak
_UNKNOWN sub_439910; // weak
_UNKNOWN sub_439A90; // weak
_UNKNOWN sub_443360; // weak
_UNKNOWN sub_4439A0; // weak
int dword_44808C[2] = { 67239935, 65536 }; // weak
int dword_44894C = 33685503; // weak
int dword_448958 = 33685503; // weak
__int16 word_448976 = 65535; // weak
__int16 word_448982 = 65535; // weak
int dword_4489E8 = 33685503; // weak
__int16 word_4489EE = 65535; // weak
int dword_4489F4 = 33685503; // weak
__int16 word_4489FA = 65535; // weak
__int16 word_448A42 = 65535; // weak
int dword_448A6C = 33685503; // weak
__int16 word_448A72 = 65535; // weak
int dword_448A84 = 33685503; // weak
char byte_448DFF = '\xFF'; // weak
char byte_448E05[3] = { '\xFF', '\xFF', '\x01' }; // weak
_UNKNOWN std::string::_Rep::_S_empty_rep_storage; // weak
char byte_44A000[4] = { '\0', '\0', '\0', '\0' }; // idb
int (__cdecl *off_44FB70[4])(int) =
{
  &std::moneypunct<char,false>::~moneypunct,
  &std::moneypunct<char,false>::~moneypunct,
  &std::moneypunct<char,false>::do_decimal_point,
  &std::moneypunct<char,false>::do_thousands_sep
}; // weak
int (__cdecl *off_44FBB0[4])(int) =
{
  &std::moneypunct<char,true>::~moneypunct,
  &std::moneypunct<char,true>::~moneypunct,
  &std::moneypunct<char,true>::do_decimal_point,
  &std::moneypunct<char,true>::do_thousands_sep
}; // weak
int (__cdecl *off_44FBF0[2])(int) = { &std::__timepunct<char>::~__timepunct, &std::__timepunct<char>::~__timepunct }; // weak
_DWORD (__cdecl *off_44FC18[3])(std::range_error *this) =
{
  &std::range_error::~range_error,
  &std::range_error::~range_error,
  &std::runtime_error::what
}; // weak
int (__cdecl *off_44FC30[2])(int) =
{
  &std::ctype_byname<char>::~ctype_byname,
  &std::ctype_byname<char>::~ctype_byname
}; // weak
_DWORD (__cdecl *off_44FC70[3])(std::domain_error *this) =
{
  &std::domain_error::~domain_error,
  &std::domain_error::~domain_error,
  &std::logic_error::what
}; // weak
_DWORD (__cdecl *off_44FC88[3])(std::length_error *this) =
{
  &std::length_error::~length_error,
  &std::length_error::~length_error,
  &std::logic_error::what
}; // weak
_DWORD (__cdecl *off_44FCA0[3])(std::out_of_range *this) =
{
  &std::out_of_range::~out_of_range,
  &std::out_of_range::~out_of_range,
  &std::logic_error::what
}; // weak
int (__cdecl *off_44FCD0[2])(int) =
{
  &std::basic_filebuf<char,std::char_traits<char>>::~basic_filebuf,
  &std::basic_filebuf<char,std::char_traits<char>>::~basic_filebuf
}; // weak
int (__cdecl *off_44FDE8[2])(int) =
{
  &std::codecvt_byname<char,char,int>::~codecvt_byname,
  &std::codecvt_byname<char,char,int>::~codecvt_byname
}; // weak
_DWORD (__cdecl *off_44FE48[3])(std::overflow_error *this) =
{
  &std::overflow_error::~overflow_error,
  &std::overflow_error::~overflow_error,
  &std::runtime_error::what
}; // weak
int (__cdecl *off_44FE60[2])(int) =
{
  &std::basic_streambuf<char,std::char_traits<char>>::~basic_streambuf,
  &std::basic_streambuf<char,std::char_traits<char>>::~basic_streambuf
}; // weak
int (__cdecl *off_44FEA0[2])(int) =
{
  &std::messages_byname<char>::~messages_byname,
  &std::messages_byname<char>::~messages_byname
}; // weak
int (__cdecl *off_44FEC0[4])(int) =
{
  &std::numpunct_byname<char>::~numpunct_byname,
  &std::numpunct_byname<char>::~numpunct_byname,
  &std::numpunct<char>::do_decimal_point,
  &std::numpunct<char>::do_thousands_sep
}; // weak
_DWORD (__cdecl *off_44FF58[3])(std::underflow_error *this) =
{
  &std::underflow_error::~underflow_error,
  &std::underflow_error::~underflow_error,
  &std::runtime_error::what
}; // weak
_DWORD (__cdecl *off_44FF80[3])(std::invalid_argument *this) =
{
  &std::invalid_argument::~invalid_argument,
  &std::invalid_argument::~invalid_argument,
  &std::logic_error::what
}; // weak
int (__cdecl *off_44FF98[2])(std::locale::facet *) =
{
  &std::__timepunct_cache<char>::~__timepunct_cache,
  &std::__timepunct_cache<char>::~__timepunct_cache
}; // weak
int (__cdecl *off_44FFA8[4])(int) =
{
  &std::moneypunct_byname<char,false>::~moneypunct_byname,
  &std::moneypunct_byname<char,false>::~moneypunct_byname,
  &std::moneypunct<char,false>::do_decimal_point,
  &std::moneypunct<char,false>::do_thousands_sep
}; // weak
int (__cdecl *off_44FFE8[4])(int) =
{
  &std::moneypunct_byname<char,true>::~moneypunct_byname,
  &std::moneypunct_byname<char,true>::~moneypunct_byname,
  &std::moneypunct<char,true>::do_decimal_point,
  &std::moneypunct<char,true>::do_thousands_sep
}; // weak
int (__cdecl *off_450048[2])(std::locale::facet *) =
{
  &std::__ctype_abstract_base<char>::~__ctype_abstract_base,
  &std::__ctype_abstract_base<char>::~__ctype_abstract_base
}; // weak
int (__cdecl *off_450088[2])(std::locale::facet *) =
{
  &std::__codecvt_abstract_base<char,char,int>::~__codecvt_abstract_base,
  &std::__codecvt_abstract_base<char,char,int>::~__codecvt_abstract_base
}; // weak
int (__cdecl *off_450148[2])(int) = { &std::collate<char>::~collate, &std::collate<char>::~collate }; // weak
int (__cdecl *off_450168[2])(std::locale::facet *) =
{
  &std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~num_get,
  &std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~num_get
}; // weak
int (__cdecl *off_4501A8[2])(std::locale::facet *) =
{
  &std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~num_put,
  &std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~num_put
}; // weak
int (__cdecl *off_450210[2])(int) = { &std::messages<char>::~messages, &std::messages<char>::~messages }; // weak
int (__cdecl *off_450270[2])(std::locale::facet *) =
{
  &std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get,
  &std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get
}; // weak
int (__cdecl *off_4502B0[2])(std::locale::facet *) =
{
  &std::time_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put,
  &std::time_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put
}; // weak
int (__cdecl *off_4502E0[2])(std::ios_base *) =
{
  &std::basic_ios<char,std::char_traits<char>>::~basic_ios,
  &std::basic_ios<char,std::char_traits<char>>::~basic_ios
}; // weak
int (__cdecl *off_450308[2])(std::locale::facet *) =
{
  &std::money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~money_get,
  &std::money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~money_get
}; // weak
int (__cdecl *off_450320[2])(std::locale::facet *) =
{
  &std::money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~money_put,
  &std::money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~money_put
}; // weak
_UNKNOWN std::__ioinit; // weak
_DWORD std::cout; // weak
_DWORD std::cin; // weak


//----- (00401290) --------------------------------------------------------
BOOL __cdecl std::__verify_grouping(const char *a1, unsigned int a2, const std::string *a3)
{
  int v3; // eax@7
  int v4; // eax@8
  bool v6; // [sp+Fh] [bp-19h]@9
  unsigned int i; // [sp+10h] [bp-18h]@1
  bool v8; // [sp+17h] [bp-11h]@1
  int v9; // [sp+18h] [bp-10h]@1
  unsigned int v10; // [sp+1Ch] [bp-Ch]@1
  unsigned int v11; // [sp+20h] [bp-8h]@1
  int v12; // [sp+24h] [bp-4h]@1

  v12 = std::string::size(a3) - 1;
  v10 = a2 - 1;
  v11 = *(_DWORD *)std::min<unsigned int>((int)&v12, (int)&v10);
  v9 = v12;
  v8 = 1;
  for ( i = 0; i < v11 && v8; ++i )
    v8 = *(_BYTE *)std::string::operator[](a3, v9--) == a1[i];
  while ( v9 && v8 )
  {
    v3 = std::string::operator[](a3, v9);
    v8 = *(_BYTE *)v3 == a1[v11];
    --v9;
  }
  v4 = std::string::operator[](a3, 0);
  if ( *(_BYTE *)v4 > a1[v11] )
    v6 = 0;
  else
    v6 = v8;
  return v6;
}
// 41CA70: using guessed type _DWORD __cdecl std::string::operator[](_DWORD, _DWORD);

//----- (00401390) --------------------------------------------------------
int __cdecl main(int argc, const char **argv, const char **envp)
{
  int v3; // eax@1
  int v4; // eax@23
  int *v6; // [sp+0h] [bp-A8h]@1
  bool *v7; // [sp+4h] [bp-A4h]@10
  bool *v8; // [sp+8h] [bp-A0h]@22
  unsigned int size; // [sp+1Ch] [bp-8Ch]@1
  int v10; // [sp+34h] [bp-74h]@26
  char TlsValue; // [sp+38h] [bp-70h]@1
  int v12; // [sp+3Ch] [bp-6Ch]@1
  int (__cdecl *v13)(int, int, int, int, int, unsigned __int8 *); // [sp+50h] [bp-58h]@1
  int v14; // [sp+54h] [bp-54h]@1
  char *v15; // [sp+58h] [bp-50h]@1
  _UNKNOWN *v16; // [sp+5Ch] [bp-4Ch]@1
  int **v17; // [sp+60h] [bp-48h]@1
  bool v18; // [sp+6Dh] [bp-3Bh]@1
  bool v19; // [sp+6Eh] [bp-3Ah]@1
  bool v20; // [sp+6Fh] [bp-39h]@1
  int v21; // [sp+70h] [bp-38h]@1
  int v22; // [sp+80h] [bp-28h]@1
  char v23; // [sp+90h] [bp-18h]@1

  size = 16;
  _alloca(0x10u);
  v13 = __gxx_personality_sj0;
  v14 = (int)dword_44808C;
  v15 = &v23;
  v16 = &loc_40168C;
  v17 = &v6;
  _Unwind_SjLj_Register(&TlsValue);
  __main();
  v6 = &v21;
  std::allocator<char>::allocator();
  v12 = 2;
  std::string::string((int)&v22, byte_44A000, (int)&v21);
  v6 = &v21;
  std::allocator<char>::~allocator();
  v20 = 0;
  v19 = 0;
  v18 = 1;
  v12 = 1;
  v3 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "πC™±´eΩ–•˝±Nµ¯µ°∂}®Ï≥çj°A®√•B¶b•˙Ωu•R®¨™∫¶a§ËªPø√πı´O´˘æA∑Ì∂Z¬˜");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  while ( v18 )
  {
    v20 = 0;
    v19 = 0;
    v12 = 1;
    logo();
    story();
    if ( v18 )
      event1(&v18);
    if ( v18 )
    {
      v12 = 1;
      event2(&v18);
    }
    if ( v18 )
    {
      v12 = 1;
      event3(&v18, &v20);
    }
    if ( v18 )
    {
      v7 = &v20;
      v12 = 1;
      event4(&v18);
    }
    if ( v18 )
    {
      v12 = 1;
      event5(&v18, &v20);
    }
    if ( v18 )
    {
      v12 = 1;
      event6(&v18, &v20, &v19);
    }
    if ( v18 )
    {
      v12 = 1;
      event7(&v18, &v20, &v19);
    }
    if ( v18 )
    {
      v12 = 1;
      event8(&v18, &v20, &v19);
    }
    if ( v18 )
    {
      v12 = 1;
      event9(&v18, &v20, &v19);
    }
    if ( v18 )
    {
      v8 = &v19;
      v7 = &v20;
      v12 = 1;
      event10(&v18);
    }
    v12 = 1;
    v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≠´∑s´_¿I∂‹?(Y/N)");
    std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
    std::operator>><char,std::char_traits<char>,std::allocator<char>>(&std::cin, &v22);
    if ( (unsigned __int8)std::operator==<char,std::char_traits<char>,std::allocator<char>>((std::string *)&v22, "y")
      || (unsigned __int8)std::operator==<char,std::char_traits<char>,std::allocator<char>>((std::string *)&v22, "Y") )
      v18 = 1;
  }
  v12 = -1;
  std::string::~string((std::string *)&v22);
  v10 = 0;
  _Unwind_SjLj_Unregister(&TlsValue);
  return v10;
}
// 415640: using guessed type int __main(void);
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 4479F8: using guessed type _DWORD __cdecl std::operator>><char,std::char_traits<char>,std::allocator<char>>(_DWORD, _DWORD);
// 44808C: using guessed type int dword_44808C[2];
// 4513C0: using guessed type _DWORD std::cout;
// 451460: using guessed type _DWORD std::cin;

//----- (004016E8) --------------------------------------------------------
int story(void)
{
  int v0; // eax@1
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1

  v0 = std::operator<<<std::char_traits<char>>((int)&std::cout, "´e®•:");
  std::ostream::operator<<(v0, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v1 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¶Ë§∏2012¶~");
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>((int)&std::cout, "•@¨…•Ω§È™∫§@¶~");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, "∑Ì•˛•@¨…™∫§H≥£¶b¨∞§F•@¨…•Ω§È™∫®Ï®”¶”§H§fl¥q¥q™∫¶PÆ…");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§@≥ı∏Ú•@¨…•Ω§Èßπ•˛µL√ˆ");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßπ•˛®S¨∆ªÚ©“ø◊™∫¨G®∆∂}©l§F.....");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  return pass();
}
// 4513C0: using guessed type _DWORD std::cout;

//----- (004017CE) --------------------------------------------------------
int logo(void)
{
  int v0; // eax@1
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  int v12; // eax@1
  int v13; // eax@1
  int v14; // eax@1
  int v15; // eax@1
  int v16; // eax@1
  int v17; // eax@1
  int v18; // eax@1
  int v19; // eax@1
  int v20; // eax@1
  int v21; // eax@1
  int v22; // eax@1
  int v23; // eax@1
  int v24; // eax@1
  int v25; // eax@1
  int v26; // eax@1
  int v27; // eax@1
  int v28; // eax@1
  int v29; // eax@1
  int v30; // eax@1
  int v31; // eax@1

  v0 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°Ω°Ω°Ω°Ω°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°@°@°Ω°Ω°Ω°Ω°@°Ω°Ω°Ω°Ω");
  std::ostream::operator<<(v0, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v1 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°@°Ω°@  °@°@°@°@°Ω°Ω°Ω°Ω°Ω°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@°Ω");
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°Ω°@°@  °@°@°@°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@°Ω°@°@°@°Ω°@°Ω");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v3 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω°Ω°Ω°Ω°@°Ω°Ω°Ω°Ω");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°@°@°Ω°@°@°Ω°@°@°@°@°@°@°Ω°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@°Ω");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v5 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@°@°@°Ω°@°Ω°@°@°@°Ω°@°Ω");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°@°@°Ω°@°@°Ω°@°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω°Ω°Ω°Ω°@°Ω°Ω°Ω°Ω");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v7 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@°@°@°@°Ω°Ω°Ω°Ω°Ω°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω");
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°Ω°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v9 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@°@°Ω°@°Ω°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω");
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°Ω°@°@°@°@°Ω°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω");
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v11 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@  °Ω°@°@°Ω°@°@°@°@°Ω°Ω°Ω°Ω°Ω°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω");
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v12 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@ °Ω°@ °@°Ω°@°@°@°@°Ω°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω");
  std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v13 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@  °Ω  °@°@°Ω°@°@°@°@°Ω°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°Ω°@°Ω");
  std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v14 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°Ω°@°@°@°Ω°Ω°@°@°@°@°Ω°Ω°Ω°Ω°Ω°@°@°@°@°Ω°@°@°@°@°@°@°Ω°Ω");
  std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v15 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°@°@°@°@°@°@°@Ver.2°@BETA°@°@°@°@°@°@°@°@°@°@°@°@ ");
  std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v16 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°Ω°Ω°@°Ω°Ω°Ω°Ω°Ω°Ω°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°@°@");
  std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v17 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°Ω°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°Ω°Ω°Ω°Ω°Ω°@°@°@°Ω°Ω°Ω°Ω°Ω");
  std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v18 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°Ω°@°@°@°@°@°Ω°@°@°@°Ω°@°Ω°@°@°@°@°Ω°@°@°@°@°@°@°Ω°@°Ω°@");
  std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v19 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°Ω°@°@°@°@°@°@°Ω°@°@°Ω°@°Ω°@°@°@°Ω°Ω°Ω°Ω°Ω°@°@°@°@°Ω°@°Ω°@");
  std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v20 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°Ω°@°@°@°@°@°@°@°@°@°@°@°@°@°Ω°@°Ω°@");
  std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v21 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°Ω°@°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@°@°@°Ω°@°Ω°@");
  std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v22 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°Ω°@°@°Ω°Ω°Ω°@°Ω°@°Ω°@°@°Ω°@°@°Ω°@°Ω°@°Ω°@°Ω°@°@°@°Ω°@°Ω°@");
  std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v23 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°Ω°@°Ω°@°Ω°@°@°@°@°Ω°@°@°Ω°@°Ω°@°Ω°@°Ω°@°@°@°Ω°@°Ω  ");
  std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v24 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°Ω°Ω°Ω°@°Ω°@°@°@°@°Ω°@°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@°@°@°Ω  °Ω  ");
  std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v25 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°@°@°@°@°@°@°@°Ω  °Ω°@");
  std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v26 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°Ω°@°@°@°@°@°@°@°@°Ω  °Ω°@");
  std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v27 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°Ω°@°@°Ω°@°@°Ω°@°@°@°Ω  °Ω°@");
  std::ostream::operator<<(v27, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v28 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°Ω°@°Ω°@°Ω°@°@°Ω°@°@°Ω°@°@°Ω  °Ω°@");
  std::ostream::operator<<(v28, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v29 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω°@°@°@°Ω°@°@°@°@°Ω°@°@°@°Ω  °Ω°@");
  std::ostream::operator<<(v29, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v30 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°@°@°@°Ω°Ω°@°@°@°@°Ω°@°@°@°@°Ω°Ω°Ω°Ω°Ω°@°@°Ω°Ω°Ω°Ω°Ω");
  std::ostream::operator<<(v30, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v31 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "---------------πC¿∏§§Ω–®œ•ŒEnter¡‰øȧJº∆¶røÔ∂µ---------------");
  std::ostream::operator<<(v31, (int (*)(void))std::endl<char,std::char_traits<char>>);
  return pass();
}
// 4513C0: using guessed type _DWORD std::cout;

//----- (00401C5C) --------------------------------------------------------
int pass(void)
{
  int v0; // eax@1

  std::operator<<<std::char_traits<char>>((int)&std::cout, "                                                        ");
  system("PAUSE");
  v0 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  return std::ostream::operator<<(v0, (int (*)(void))std::endl<char,std::char_traits<char>>);
}
// 4513C0: using guessed type _DWORD std::cout;

//----- (00401CA8) --------------------------------------------------------
bool *__cdecl event1(bool *a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  int v12; // eax@1
  int v13; // eax@1
  bool *result; // eax@5
  int v15; // eax@12
  int v16; // eax@12
  int v17; // eax@12
  int v18; // eax@12
  int v19; // eax@13
  int v20; // eax@13
  int v21; // eax@13
  int v22; // eax@13
  int v23; // eax@14
  int v24; // eax@14
  int v25; // eax@14
  int v26; // eax@14
  int v27; // eax@15
  int v28; // eax@15
  int v29; // eax@15
  int v30; // eax@15
  int v31; // eax@15
  int v32; // eax@15
  int v33; // eax@15
  int v34; // [sp+14h] [bp-4h]@1

  v34 = 0;
  v1 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u∂‚∂‚~∫Œ±o¶nπ°∞⁄...°v");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßAøÙ§FπL®”¨›§F¨›•|©P");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "∞£§Fߧ¶b´e≠±™∫§H•øßV§O™∫©Ô∞_¿Y©Ëß‹µ€®I≠´™∫∫Œ∑N");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, "®‰•L§H≥£§w∏g¶bµœºw™∫±jØP∂ Øv§U∂i§J®I∫Œ¥¡");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ØZ§W§@§˘´ÕæÓπM≥•");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≤{¶b≠n∞µ§∞ªÚ°H(≠≠øȧJº∆¶r°A´ˆEnterøȧJ)");
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1. ƒ~ƒÚ∫Œ");
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2. ∞_®”ƒ~ƒÚ≈•Ω“");
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, "3. ¶€±˛");
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, "4. ∞Ω∑»•X±–´«");
  std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
  while ( v34 <= 0 || v34 > 4 )
    std::istream::operator>>(&std::cin, &v34);
  result = (bool *)v34;
  if ( v34 == 2 )
  {
    v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°uß÷¶“∏’§F...¡Ÿ¨O∞_®”¶h§÷≈•§@§UΩ“ßa...°v");
    std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≈•µ€≈•µ€°AßA§£§p§fl¥N∫Œµ€§F°C");
    std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v22 = std::operator<<<std::char_traits<char>>((int)&std::cout, "®Ï§Fæ«¥¡•Ω°AßA≥Q∑̧F°C");
    std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    result = badend(a1);
  }
  else if ( v34 > 2 )
  {
    if ( v34 == 3 )
    {
      v23 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v24 = std::operator<<<std::char_traits<char>>(
              (int)&std::cout,
              "°uß⁄ƒ±±oß⁄¨°¶b≥o≠”•@¨…§WÆ⁄•ª®S¶≥∑N∏q°A™¸ºw¨O¨∆ªÚ∞≠™F¶Ë∞⁄!!°v");
      std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v25 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA§@≈D∏ı∂i§F§§¨¸¥Ú°C");
      std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v26 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶∫§F°C");
      std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      result = deadend(a1);
    }
    else if ( v34 == 4 )
    {
      v27 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v27, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v28 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°uΩ÷≠n≈•≥oπ≥§j¥d©G§@ºÀ™∫∏g§Â∞⁄°Iß⁄≠n¬ºΩ“°I°v");
      std::ostream::operator<<(v28, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v29 = std::operator<<<std::char_traits<char>>(
              (int)&std::cout,
              "∞Ω∑»•X•~≠±°A©Ißl§F§@§U∑s¬A™≈Æ°A™GµM¡Ÿ¨O•~≠±™∫™≈Æ¶n∞⁄°I");
      std::ostream::operator<<(v29, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v30 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°ußA¶b∞µ§∞ªÚ°H°v");
      std::ostream::operator<<(v30, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v31 = std::operator<<<std::char_traits<char>>((int)&std::cout, "´·≠±∂«•X§F§@≠”≥±®I™∫¡n≠µ°C");
      std::ostream::operator<<(v31, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v32 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v32, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v33 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ß⁄¬‡¿Y°A¨O¿~¶∫§H™∫≥صœºw°I¨Oºv§¿®≠∂‹°I°H");
      std::ostream::operator<<(v33, (int (*)(void))std::endl<char,std::char_traits<char>>);
      result = (bool *)pass();
    }
  }
  else if ( v34 == 1 )
  {
    v15 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u¡ˆµM∫Œ±o¶nπ°°A§£πL...ß⁄¡Ÿ¨Oƒ~ƒÚ∫Œ¶n§F°C°v");
    std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, "©Û¨OßA≠w§U®”ƒ~ƒÚ∫Œ°C");
    std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, "®Ï§Fæ«¥¡•Ω°AßA≥Q∑̧F°C");
    std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    result = badend(a1);
  }
  return result;
}
// 432710: using guessed type _DWORD __cdecl std::istream::operator>>(_DWORD, _DWORD);
// 4513C0: using guessed type _DWORD std::cout;
// 451460: using guessed type _DWORD std::cin;

//----- (00402210) --------------------------------------------------------
bool *__cdecl event2(bool *a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  bool *result; // eax@5
  int v7; // eax@9
  int v8; // eax@9
  int v9; // eax@9
  int v10; // eax@9
  int v11; // eax@9
  int v12; // eax@9
  int v13; // eax@9
  int v14; // eax@9
  int v15; // eax@9
  int v16; // eax@14
  int v17; // eax@14
  int v18; // eax@14
  int v19; // eax@15
  int v20; // eax@15
  int v21; // eax@15
  int v22; // eax@16
  int v23; // eax@16
  int v24; // eax@16
  int v25; // eax@17
  int v26; // eax@17
  int v27; // eax@17
  int v28; // eax@18
  int v29; // eax@21
  int v30; // [sp+10h] [bp-8h]@8
  bool *v31; // [sp+14h] [bp-4h]@1

  v31 = 0;
  v1 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>((int)&std::cout, "æDπJ§F≥••Õ™∫≥صœºw°A≤{¶bßA≠n∞µ§∞ªÚ°H");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1. æ‘∞´");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2. ∞k∂]");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  while ( (signed int)v31 <= 0 || (signed int)v31 > 2 )
    std::istream::operator>>(&std::cin, &v31);
  result = v31;
  if ( v31 == (bool *)1 )
  {
    v30 = 0;
    do
    {
      v30 = 0;
      v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, "Ω–øÔæ‹∞ ß@:");
      std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, "(1)ß¿ª");
      std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, "(2)®æøm");
      std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, "(3)≈]™k");
      std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, "(4)πD®„");
      std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, "(5)∞k∂]");
      std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v15 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
      while ( v30 <= 0 || v30 > 5 )
        std::istream::operator>>(&std::cin, &v30);
      result = (bool *)v30;
      switch ( v30 )
      {
        case 1:
          v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•Œ§O¥¬µ€≥صœºw™∫ªÛºŸ¨Ω¨Ω¥~§F§@Ʊ°C");
          std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, "•’√®°AßA≥Q∞h櫧F°C");
          std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          result = badend(a1);
          break;
        case 2:
          v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶b¶a§W¡Y¶®§F§@πŒ°C");
          std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, "∞£§F§jÆaßN≤¥¨›µ€ßA§ß•~°A§∞ªÚ®∆§]®Sµo•Õ");
          std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
          result = (bool *)pass();
          break;
        case 3:
          v22 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v23 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA©¿•X§@™¯¶Í≈•§£¿¥™∫©Gªy°C");
          std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v24 = std::operator<<<std::char_traits<char>>((int)&std::cout, "∞£§F§jÆaßN≤¥¨›µ€ßA§ß•~°A§∞ªÚ®∆§]®Sµo•Õ");
          std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
          result = (bool *)pass();
          break;
        case 4:
          v25 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v26 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶˘§‚©πø«§l§f≥U∏ìΩ߉πD®„°C");
          std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v27 = std::operator<<<std::char_traits<char>>((int)&std::cout, "µ≤™GßAµo≤{ßA®√®S¶≥¨Ôø«§l°C");
          std::ostream::operator<<(v27, (int (*)(void))std::endl<char,std::char_traits<char>>);
          result = (bool *)pass();
          break;
        case 5:
          v28 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v28, (int (*)(void))std::endl<char,std::char_traits<char>>);
          result = runaway(a1);
          v30 = 1;
          break;
        case 0:
          break;
      }
    }
    while ( v30 != 1 );
  }
  else if ( v31 == (bool *)2 )
  {
    v29 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v29, (int (*)(void))std::endl<char,std::char_traits<char>>);
    result = runaway(a1);
  }
  return result;
}
// 432710: using guessed type _DWORD __cdecl std::istream::operator>>(_DWORD, _DWORD);
// 4513C0: using guessed type _DWORD std::cout;
// 451460: using guessed type _DWORD std::cin;

//----- (00402702) --------------------------------------------------------
bool *__cdecl runaway(bool *a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  bool *result; // eax@5
  int v12; // eax@11
  int v13; // eax@11
  int v14; // eax@12
  int v15; // eax@12
  int v16; // eax@12
  int v17; // eax@12
  int v18; // eax@12
  int v19; // eax@12
  int v20; // eax@12
  int v21; // eax@12
  int v22; // eax@12
  int v23; // eax@12
  int v24; // eax@12
  int v25; // eax@13
  int v26; // eax@13
  int v27; // eax@13
  int v28; // [sp+14h] [bp-4h]@1

  v28 = 0;
  v1 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "ßA•Œ≥oΩ˙§l≥Ãß÷™∫≥t´◊∂]∂}§F°A®Ï§F§@≠”¶w•˛™∫¶a§Ë∞±§U®”•Æß°C");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u©I..©I...≤◊©Û≥Qß⁄µπ∞k•X≠”•Õ§—§F...°v");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA≥›µ€Æ°A¬‡¿Y¨›¨›•|©P°AßAØ∏¶b∑|øÏ™∫•~≠±°C");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≤{¶b≠n´ÁªÚøÏ©O°H");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1. Ωƒ∂i•h");
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2. ∫V™˘");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, "3. ¬˜∂}");
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  while ( v28 <= 0 || v28 > 3 )
    std::istream::operator>>(&std::cin, &v28);
  result = (bool *)v28;
  if ( v28 == 2 )
  {
    v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v15 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°uß⁄∂i®”≈o°I°v");
    std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°uµ•°Bµ•§@§U°A™˘≥Q¬Í¶Ì§F°I°v");
    std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¨O∑|™¯™∫¡n≠µ°C");
    std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u•i•H¿∞ß⁄•h∏Ú§pµ£≠…≠”∆_∞Õ∂‹°H°v");
    std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v20 = std::operator<<<std::char_traits<char>>(
            (int)&std::cout,
            "¡ˆµMßA§£™æπD¨∞§∞ªÚ¶o؇≥Q¬Í¶b∏Ã≠±°A≥o∫ÿÆ…≠‘¿≥∏”•h߉¬Í¶Kßa°H");
    std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v22 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§£πLßA¡Ÿ¨Oª°°C");
    std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v23 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≥·°A¶nß⁄™æπD§F°C°v");
    std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v24 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¬˜∂}§F∑|øÏ°C");
    std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
    result = (bool *)pass();
  }
  else if ( v28 > 2 )
  {
    if ( v28 == 3 )
    {
      v25 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v26 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¨µM≠I´·§@∞}≤D∑N°A¶’√‰∂«®”§@¡n∫√¶¸™¸ºw™∫¡n≠µ");
      std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v27 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u∞⁄ºR.......°v");
      std::ostream::operator<<(v27, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      result = deadend(a1);
    }
  }
  else if ( v28 == 1 )
  {
    v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA§@¿Yº≤§W§F≈K™˘°A∂À≠´§£™v°C");
    std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    result = deadend(a1);
  }
  return result;
}
// 432710: using guessed type _DWORD __cdecl std::istream::operator>>(_DWORD, _DWORD);
// 4513C0: using guessed type _DWORD std::cout;
// 451460: using guessed type _DWORD std::cin;

//----- (00402B64) --------------------------------------------------------
bool *__cdecl event3(bool *a1, bool *a2)
{
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  bool *result; // eax@5
  int v12; // eax@11
  int v13; // eax@11
  int v14; // eax@11
  int v15; // eax@18
  int v16; // eax@18
  int v17; // eax@18
  int v18; // eax@18
  int v19; // eax@19
  int v20; // eax@19
  int v21; // eax@20
  int v22; // eax@20
  int v23; // eax@21
  int v24; // eax@21
  bool *v25; // [sp+10h] [bp-8h]@11
  int v26; // [sp+14h] [bp-4h]@1

  v26 = 0;
  v2 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u’Ÿ°BßA¶b∞µ§∞ªÚ°H°v");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¬‡¿Y§@¨›°Aßı•ø¶N¥¬ßA®´§FπL®”°C");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≈o∂€™∫ßı•ø¶N•X≤{§F°AßA≤{¶b≠n∞µ§∞ªÚ©O°H");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1. πÔ∏‹");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2. æ‘∞´");
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, "3. ¬˜∂}");
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  while ( v26 <= 0 || v26 > 3 )
    std::istream::operator>>(&std::cin, &v26);
  result = (bool *)v26;
  if ( v26 == 2 )
  {
    v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v22 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßAß@∂’¥¬µ€ßı•ø¶N≠nÆi∂}ß¿ª°C");
    std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
    result = shock(a2);
  }
  else if ( v26 > 2 )
  {
    if ( v26 == 3 )
    {
      v23 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v24 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA∑Ì•L¨O≥z©˙§HØΙ∫®´∂}§F°C");
      std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
      result = (bool *)pass();
    }
  }
  else if ( v26 == 1 )
  {
    v25 = 0;
    v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1.°uª°§FßA∑|≈˝ß⁄º⁄≠w∂‹°H•hÆ«√‰™±®FßaßA°C°v");
    std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2.°ußA¨O¶b≈o∂€§∞ªÚ∞’°I(∂W§j¡n)°v");
    std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
    while ( (signed int)v25 <= 0 || (signed int)v25 > 2 )
      std::istream::operator>>(&std::cin, &v25);
    result = v25;
    if ( v25 == (bool *)1 )
    {
      v15 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°uª°§FßA∑|≈˝ß⁄º⁄≠w∂‹°H•hÆ«√‰™±®FßaßA°C°v");
      std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, "•ø¶N∫N∫NªÛ§l•¢±Ê™∫®´±º§F");
      std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
      result = (bool *)pass();
    }
    else if ( v25 == (bool *)2 )
    {
      v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°ußA¨O¶b≈o∂€§∞ªÚ∞’°I°v");
      std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      result = shock(a2);
    }
  }
  return result;
}
// 432710: using guessed type _DWORD __cdecl std::istream::operator>>(_DWORD, _DWORD);
// 4513C0: using guessed type _DWORD std::cout;
// 451460: using guessed type _DWORD std::cin;

//----- (00402F64) --------------------------------------------------------
bool *__cdecl shock(bool *a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  bool *result; // eax@1

  v1 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>((int)&std::cout, "•ø¶N≥Q¿~§F§@∏ı∫L≠À§F°C");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, "•ø¶N-10HP°C");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "•ø¶N≈ȧO§£§‰¶”≠À§U§F°C");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßAƒπ§F°I");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, "µ•Ø≈¥£§…°I");
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≤fl±oßfi؇¢wΩ’æ„§‚øˆ°C");
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¨B±o™´´~¢w•ø¶N•d°C");
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  result = a1;
  *a1 = 1;
  return result;
}
// 4513C0: using guessed type _DWORD std::cout;

//----- (00403122) --------------------------------------------------------
bool *__cdecl event4(bool *a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  bool *result; // eax@5
  int v9; // eax@7
  int v10; // eax@7
  int v11; // eax@7
  int v12; // eax@7
  int v13; // eax@8
  int v14; // eax@8
  int v15; // eax@8
  int v16; // eax@8
  int v17; // eax@8
  int v18; // eax@8
  int v19; // eax@8
  int v20; // eax@8
  int v21; // eax@8
  bool *v22; // [sp+14h] [bp-4h]@1

  v22 = 0;
  v1 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>((int)&std::cout, "®´®Ï§F®tøÏ°AßAπJ®Ï§F§pµ£°C");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "•¥∫‚´ÁªÚ∂}§f?");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1. ≠…∆_∞Õ");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2. ∑f∞S");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  while ( (signed int)v22 <= 0 || (signed int)v22 > 2 )
    std::istream::operator>>(&std::cin, &v22);
  result = v22;
  if ( v22 == (bool *)1 )
  {
    v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u®∫≠”...ß⁄≠n≠…§@§U∑|øÏ™∫∆_∞Õ°C°v");
    std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v15 = std::operator<<<std::char_traits<char>>(
            (int)&std::cout,
            "°u¶n∞⁄°A§£πL...≠Ë≠Ë∑|øÏ™∫∆_∞Õ§w∏g¶≥§H®”≠…®´§F’Ÿ...°v");
    std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u∂‚°HΩ÷∞⁄°H°v");
    std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u¨O§Ú¶—Æv...°v");
    std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, "∂‚°H•L¨O∑Q≠nºÁ∂i•h∑|øÏ∞µ§∞ªÚ∞⁄°H");
    std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u®∫Ω–∞›§@§U™æπD§Ú¶—Æv≤{¶b¶b≠˛∏Ã∂‹°H°v");
    std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≤{¶b™∫∏‹...§j∑ß•ø¶b±–´«§WΩ“ßa°H°v");
    std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≥·¶n°Aß⁄™æπD§F°A¡¬¡¬¨¸ƒR™∫§pµ£°C°v");
    std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
    result = (bool *)pass();
  }
  else if ( v22 == (bool *)2 )
  {
    v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≥o¶Ï¨¸ƒR™∫§p©j°Aß⁄•i•H∏ÚßA¨˘∑|∂‹°H°v");
    std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u£∞?¶Pæ«°AßA¨O§£¨O§W¶∏®S¶≥Ω¸≠»®t¿]?°v");
    std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°uµ•§@§U•h߉√h≠€•¥±Ω5A≥·°C°v");
    std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, "´‹§£©Ø™∫°A±µ§U®”™∫§jæ«•Õ¨°ßA≥£≥Q√h≠€•£ß–§F°C");
    std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    result = badend(a1);
  }
  return result;
}
// 432710: using guessed type _DWORD __cdecl std::istream::operator>>(_DWORD, _DWORD);
// 4513C0: using guessed type _DWORD std::cout;
// 451460: using guessed type _DWORD std::cin;

//----- (00403490) --------------------------------------------------------
bool *__cdecl event5(bool *a1, bool *a2)
{
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  bool *result; // eax@5
  int v10; // eax@8
  int v11; // eax@8
  int v12; // eax@8
  int v13; // eax@8
  int v14; // eax@8
  int v15; // eax@8
  int v16; // eax@8
  int v17; // eax@8
  int v18; // eax@8
  int v19; // eax@8
  int v20; // eax@8
  int v21; // eax@8
  int v22; // eax@8
  int v23; // eax@8
  int v24; // eax@8
  int v25; // eax@8
  int v26; // eax@8
  int v27; // eax@8
  int v28; // eax@8
  int v29; // eax@8
  int v30; // eax@8
  int v31; // eax@8
  int v32; // eax@8
  int v33; // eax@8
  int v34; // eax@8
  int v35; // eax@8
  int v36; // eax@8
  int v37; // eax@8
  int v38; // eax@8
  int v39; // eax@8
  int v40; // eax@8
  int v41; // eax@8
  int v42; // eax@8
  int v43; // eax@8
  int v44; // eax@8
  int v45; // eax@8
  int v46; // eax@9
  int v47; // eax@9
  int v48; // eax@9
  int v49; // eax@9
  int v50; // eax@9
  int v51; // eax@9
  int v52; // eax@9
  int v53; // eax@9
  int v54; // eax@9
  int v55; // eax@9
  int v56; // eax@9
  int v57; // eax@9
  int v58; // eax@9
  int v59; // eax@9
  int v60; // eax@9
  int v61; // eax@9
  int v62; // eax@9
  int v63; // eax@9
  int v64; // eax@9
  int v65; // eax@9
  int v66; // eax@9
  int v67; // eax@9
  int v68; // eax@9
  int v69; // eax@9
  int v70; // eax@10
  int v71; // eax@22
  int v72; // eax@22
  int v73; // eax@22
  int v74; // eax@22
  int v75; // eax@22
  int v76; // eax@22
  int v77; // eax@22
  int v78; // eax@22
  int v79; // eax@22
  int v80; // eax@22
  int v81; // eax@22
  int v82; // eax@22
  int v83; // eax@22
  int v84; // eax@22
  int v85; // eax@23
  int v86; // eax@23
  int v87; // eax@23
  int v88; // eax@23
  int v89; // eax@23
  int v90; // eax@23
  int v91; // eax@23
  int v92; // eax@23
  int v93; // eax@23
  int v94; // eax@23
  int v95; // eax@23
  int v96; // eax@23
  int v97; // eax@23
  int v98; // eax@23
  int v99; // eax@23
  int v100; // eax@23
  int v101; // eax@23
  int v102; // eax@23
  int v103; // eax@25
  int v104; // eax@25
  int v105; // eax@25
  int v106; // eax@25
  int v107; // eax@25
  int v108; // eax@25
  int v109; // eax@25
  int v110; // eax@25
  int v111; // eax@25
  int v112; // eax@25
  int v113; // eax@25
  int v114; // eax@25
  int v115; // eax@25
  int v116; // eax@25
  int v117; // eax@25
  int v118; // eax@25
  int v119; // eax@25
  int v120; // eax@25
  int v121; // eax@25
  int v122; // eax@25
  int v123; // eax@25
  int v124; // eax@25
  int v125; // eax@25
  int v126; // eax@25
  int v127; // eax@25
  int v128; // eax@25
  int v129; // eax@25
  int v130; // eax@25
  int v131; // eax@25
  int v132; // eax@25
  int v133; // eax@25
  int v134; // eax@25
  int v135; // eax@25
  int v136; // eax@25
  int v137; // eax@25
  int v138; // eax@25
  int v139; // eax@25
  int v140; // eax@25
  char v141; // [sp+1Fh] [bp-9h]@9
  int i; // [sp+20h] [bp-8h]@9
  bool *v143; // [sp+24h] [bp-4h]@1

  v143 = 0;
  v2 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¬˜∂}§F®tøÏ°AßA¥¬µ€¶—§Ú§ß∏Ù´e∂iµ€°C");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v5 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "®´®Ï§F±–´«•~≠±øsµ¯µ€°A¶—§Ú•ø¶b§N√¯µ€§j§@™∫∑s¬A•Æ≠]≠ðC");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≤{¶b≠n´ÁªÚ∞µ©O°H");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1. µ•®Ï§UΩ“");
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2. Ωƒ∂i•h");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  while ( (signed int)v143 <= 0 || (signed int)v143 > 2 )
    std::istream::operator>>(&std::cin, &v143);
  result = v143;
  if ( v143 == (bool *)1 )
  {
    v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, "•m©N•m©N~~•m©N•m©N~~");
    std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v13 = std::operator<<<std::char_traits<char>>(
            (int)&std::cout,
            "∑Ìß⁄∑«≥∆ΩÒ∂i±–´«™∫Æ…≠‘°A§@≠”æ«ßÃß÷≥t™∫±q±–´«∏Ã≠±Ωƒ§F•X®”");
    std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v15 = std::operator<<<std::char_traits<char>>((int)&std::cout, "º≤®Ï§FßA™∫™”ªH°AÆ`ßA§@≠”‰WÓæÆt¬I∂^≠À°C");
    std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u∑d§∞ªÚ™¸?º≤®Ï§H¨O§£∑|πD∫p≥·°I°v");
    std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v19 = std::operator<<<std::char_traits<char>>(
            (int)&std::cout,
            "°u¶”•Bß⁄•™§‚™∫•Ω±ÈØ´∏g≥Q©pº≤¬_§F°AΩflß⁄¬Â√ƒ∂O§T¶ ∏U∞⁄°I°v");
    std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¡ˆµMßA´‹∑Q≥oªÚª°°A§£πL±R∞™™∫∑|™¯¡Ÿ≥Q¬Í¶b∑|øÏ∏ÿY");
    std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v22 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v23 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u¥N•˝§£∏ÚßA≥o§p§Ú¿Y≠p∏˚§F°C°v");
    std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v24 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v25 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¨›µ€®∫æ«ßás∏~™∫≠Iºv•^¶£§U§Fº”±Ë°AßA¬‡¿Y¨›µ€±–´«°C");
    std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v26 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v27 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u¶—§Ú§£®£§F°I°I°v");
    std::ostream::operator<<(v27, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v28 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v28, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v29 = std::operator<<<std::char_traits<char>>(
            (int)&std::cout,
            "°u´ÁªÚ∑|§£®£™∫°Hß⁄©˙©˙¶u¶b™˘§f°A•L§£•i؇±qß⁄™∫≠±´eƯ•¢™∫∞⁄°C°v");
    std::ostream::operator<<(v29, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v30 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v30, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v31 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u∞£´D•L±q´·™˘•X•h...°v");
    std::ostream::operator<<(v31, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v32 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v32, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v33 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¥¬µ€´·™˘¨›πL•h°A§]¨O®S¶≥¶—§Ú™∫¬‹ºv°C");
    std::ostream::operator<<(v33, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v34 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v34, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v35 = std::operator<<<std::char_traits<char>>(
            (int)&std::cout,
            "°u≥oªÚ™¯™∫§@±¯®´πD°A§£•i؇¶b≥o¥X¨Ìƒ¡™∫Æ…∂°¥N≥qπL§F°C°v");
    std::ostream::operator<<(v35, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v36 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v36, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v37 = std::operator<<<std::char_traits<char>>((int)&std::cout, "®∫ªÚ°A¶—§Ú®Ï©≥¨OƯ•¢®Ï≠˛∏Õh§F©O...");
    std::ostream::operator<<(v37, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v38 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v38, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v39 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±q¶π§ß´·°A¶—§Ú¶A§]®S¶≥•X≤{πL°C");
    std::ostream::operator<<(v39, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v40 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v40, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v41 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¶”∑|™¯°A≥Q¬Í¶b∑|øÏ™¯πF§Q≠”§pÆ…");
    std::ostream::operator<<(v41, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v42 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v42, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v43 = std::operator<<<std::char_traits<char>>(
            (int)&std::cout,
            "•X®”™∫Æ…≠‘§w§fl§O•Ê∑Ò°A§@•y∏‹§]ª°§£•X§f°A§ß´·¶A§]§£¥±´›¶b∑|øÏ°C");
    std::ostream::operator<<(v43, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v44 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v44, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v45 = std::operator<<<std::char_traits<char>>(
            (int)&std::cout,
            "¶”≥oºŒƒaÆ◊´h®S¶≥§H؇∞˜∏—ƒ¿°A¶®¨∞§Fπœ∏Í®t™∫§@§j©«ΩÕ....");
    std::ostream::operator<<(v45, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    result = nomalend(a1);
  }
  else if ( v143 == (bool *)2 )
  {
    i = 0;
    v141 = 1;
    v46 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v46, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v47 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¶]¨∞ßAƒ±±o≥oºÀ§Ò∏˚§£∞∑±d°A©“•HßA§j≥‹§@¡n°C");
    std::ostream::operator<<(v47, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v48 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v48, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v49 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u´¢´¢°A≥Q¶—§lµπ∂e®Ï§Fßa°AßA≥o∞Ω∆_∞Õ™∫≥√•Î°I°I°v");
    std::ostream::operator<<(v49, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v50 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v50, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v51 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¶—§Ú§@¡y≈Â¥j™∫¨›µ€ß⁄°A¨›®”¨O≥Qß⁄¿~®Ï§F°C");
    std::ostream::operator<<(v51, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v52 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v52, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v53 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u∂„´¢´¢´¢´¢°A≥QßAµπ√—Ø}§F∞⁄°I°v");
    std::ostream::operator<<(v53, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v54 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v54, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v55 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±q©≥§U™∫Æy¶Ï§WØ∏∞_§F§@≠”™¯±o¶≥®«¡s∏~™∫æ«ßÃ");
    std::ostream::operator<<(v55, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v56 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v56, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v57 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≈S•X§@≠”¿I¥c™∫Ø∫Æe±µµ€±q¡y§WßϧU§F§@ºhπ≥¨O•÷™∫™F¶Ë");
    std::ostream::operator<<(v57, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v58 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v58, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v59 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§U≠±≈„≤{•X®”™∫¨O≥صœºw™∫¡y°C");
    std::ostream::operator<<(v59, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v60 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v60, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v61 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºw≥±¿I™∫Ø∫§F§@¡n°A¥¬µ€¶—§Ú§jßq§F§@¡n°C");
    std::ostream::operator<<(v61, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v62 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v62, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v63 = std::operator<<<std::char_traits<char>>(
            (int)&std::cout,
            "°ußA≥o¶—πx©T°A§µ§—¥N¨OßA™∫¶∫¥¡°I°I∞⁄´zÀ„≥ÿÀ„∞’°I°I°I°v");
    std::ostream::operator<<(v63, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v64 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v64, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v65 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§@πD´C•˙¥¬µ€¶—§ÚÆg§FπL•h°C");
    std::ostream::operator<<(v65, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v66 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v66, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v67 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≤{¶bßA≠n´ÁªÚ∞µ©O°H");
    std::ostream::operator<<(v67, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v68 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1. §£∫fi•L");
    std::ostream::operator<<(v68, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v69 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2. ¿∞¶—§Ú¿…§U≥o§@∞O°C");
    std::ostream::operator<<(v69, (int (*)(void))std::endl<char,std::char_traits<char>>);
    result = a2;
    if ( *a2 )
    {
      v70 = std::operator<<<std::char_traits<char>>((int)&std::cout, "3. ®œ•ŒπD®„°C");
      result = (bool *)std::ostream::operator<<(v70, (int (*)(void))std::endl<char,std::char_traits<char>>);
    }
    while ( v141 )
    {
      for ( i = 0; i <= 0 || i > 3; std::istream::operator>>(&std::cin, &i) )
        ;
      result = (bool *)i;
      if ( i == 2 )
      {
        v85 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v85, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v86 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≈@ær°I≈@ær°I°v");
        std::ostream::operator<<(v86, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v87 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v87, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v88 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u•D§Ω°Aß⁄®”ßUßA°I°v");
        std::ostream::operator<<(v88, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v89 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v89, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v90 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA§@≠”move≈@¶b¶—§Ú™∫®≠´e°A¿∞•L¶Y§U§F≥o§@©€°C");
        std::ostream::operator<<(v90, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v91 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v91, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v92 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥Q¿ª§§™∫¿˛∂°°AßA•˛®≠∑Pƒ±®Ï§@™—º@µh°C");
        std::ostream::operator<<(v92, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v93 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v93, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v94 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥o™—º@µhπ≥¨O≥Q∞sær™∫§TµŸ•Æ»®Æ¡”πL°C");
        std::ostream::operator<<(v94, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v95 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v95, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v96 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§Sπ≥¨O¶≥∏t•“¬Œ¶b∞Ÿ´rµ€ßA°C");
        std::ostream::operator<<(v96, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v97 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v97, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v98 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA§£¬_∫G•sµ€°Aµ¯Ωu∂}©lºΩ©Ò§H•Õ∂]∞®øO°C");
        std::ostream::operator<<(v98, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v99 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v99, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v100 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±µµ€≤¥´e§@∂¬°C");
        std::ostream::operator<<(v100, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v101 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v101, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v102 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶∫§F°C");
        std::ostream::operator<<(v102, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v141 = 0;
        result = deadend(a1);
      }
      else if ( i > 2 )
      {
        if ( i == 3 )
        {
          result = a2;
          if ( *a2 )
          {
            v103 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v103, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v104 = std::operator<<<std::char_traits<char>>(
                     (int)&std::cout,
                     "ßA®œ•Œ§F•ø¶N•d°AØSÆÌ•l≥ͧFßı•ø¶Næ◊¶b¶—§Ú´e≠±°C");
            std::ostream::operator<<(v104, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v105 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v105, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v106 = std::operator<<<std::char_traits<char>>((int)&std::cout, "•ø¶N≥Q´C•˙¿ª§§§ß´·°A•˛®≠´K∂}©lº@ØP≈∏ß›");
            std::ostream::operator<<(v106, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v107 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v107, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v108 = std::operator<<<std::char_traits<char>>((int)&std::cout, "®√•B§£¬_™∫∫G•s°C");
            std::ostream::operator<<(v108, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v109 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v109, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v110 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u™LÆ—ª®±œß⁄°I°I°„°v");
            std::ostream::operator<<(v110, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v111 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v111, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v112 = std::operator<<<std::char_traits<char>>(
                     (int)&std::cout,
                     "¿˛∂°•L™Z≥N•˛•¢°Bµ¨Øfl∞f¨y°B≠J´‰∂√∑Q¶”≠P®´§ı§J≈]");
            std::ostream::operator<<(v112, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v113 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v113, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v114 = std::operator<<<std::char_traits<char>>(
                     (int)&std::cout,
                     "≥ô·¶Â∫fi√zµı¶”¶∫°A™Ω™Ω™∫≠À¶b¶€§v™∫¶Â™y§ß§§....");
            std::ostream::operator<<(v114, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v115 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v115, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v116 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u©I...¡Ÿ¶n§£¨Oß⁄...°v");
            std::ostream::operator<<(v116, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v117 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v117, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v118 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA©Ÿ§F©Ÿ¶ΩµŒ§F§@§fÆ°C");
            std::ostream::operator<<(v118, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v119 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v119, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v120 = std::operator<<<std::char_traits<char>>(
                     (int)&std::cout,
                     "°u√aß⁄¶n®∆°A§U¶∏¥N߉ßA∫‚±b°A´¢´¢´¢´¢´¢´¢°I°I°I°v");
            std::ostream::operator<<(v120, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v121 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v121, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v122 = std::operator<<<std::char_traits<char>>(
                     (int)&std::cout,
                     "ª°µ€°A≥صœºw≠϶a¬‡§F§@≠”∞È°A§@≠”¥™´}§ß´·æÙ≈Ư•¢§F°C");
            std::ostream::operator<<(v122, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v123 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v123, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v124 = std::operator<<<std::char_traits<char>>(
                     (int)&std::cout,
                     "°u¡ˆµM∑d§£¿¥¨O´ÁªÚ¶^®∆°A§£πL¶¸•G¨O≥Q®n§W§F™¸....°v");
            std::ostream::operator<<(v124, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v125 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v125, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v126 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u§£∑|≥Q∑Ìßa°H°v");
            std::ostream::operator<<(v126, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v127 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v127, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v128 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¶—§Ú≤@ævµL∂À¶a®´πL®”°C");
            std::ostream::operator<<(v128, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v129 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v129, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v130 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u¶Pæ«°A¨∞§F™Ì¥≠ßA≠^´i™∫≈@ær¶Ê¨∞°C°v");
            std::ostream::operator<<(v130, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v131 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v131, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v132 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°uß⁄≠„ßA§WΩ“™∫Æ…≠‘•i•H®œ•Œ•fl•i•’°C°v");
            std::ostream::operator<<(v132, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v133 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v133, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v134 = std::operator<<<std::char_traits<char>>(
                     (int)&std::cout,
                     "ß⁄ß‚¬√¶bµ≈§U™∫•fl•i•’Æ≥•X®”°A•ø§j•˙©˙™∫©Ò¶^π]µß≤∞");
            std::ostream::operator<<(v134, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v135 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v135, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v136 = std::operator<<<std::char_traits<char>>(
                     (int)&std::cout,
                     "°uπÔ§F°A¡Ÿ¶≥∑|øÏ™∫∆_∞Õ¿∞ß⁄¡Ÿµπ§pµ£°A∏”∞µ™∫®∆§w∏g∞µßπ§F°C°v");
            std::ostream::operator<<(v136, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v137 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v137, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v138 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°ußA∏”∞µ™∫®∆¨O§∞ªÚ®∆∞⁄°I°H°v");
            std::ostream::operator<<(v138, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v139 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v139, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v140 = std::operator<<<std::char_traits<char>>(
                     (int)&std::cout,
                     "¡ˆµM∑Q¶Rº—°A§£πL•ÿº–™´´~§w∏g®Ï§‚§F°A¥N∫‚§Fßa°C");
            std::ostream::operator<<(v140, (int (*)(void))std::endl<char,std::char_traits<char>>);
            result = (bool *)pass();
            v141 = 0;
          }
        }
      }
      else if ( i == 1 )
      {
        v71 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v71, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v72 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¶—§Úºb∫w™∫∫G•s§@¡n°A¶∫§F°C");
        std::ostream::operator<<(v72, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v73 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v73, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v74 = std::operator<<<std::char_traits<char>>(
                (int)&std::cout,
                "≥صœºw±q¶—§Ú§f≥U∏ÃÆ≥®´§F∑|øÏ™∫∆_∞Õ°A±µµ€∂]•X§F±–´«°C");
        std::ostream::operator<<(v74, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v75 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v75, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v76 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±q¶π§ß´·ßA¶A§]®S¶≥¨›πL≥صœºw°C");
        std::ostream::operator<<(v76, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v77 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v77, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v78 = std::operator<<<std::char_traits<char>>(
                (int)&std::cout,
                "≥oºŒ¶ÂÆ◊§]¶]¨∞≥صœºw™∫Ư•¢¶”®S¶≥µ≤™G≥ô·ØÛØÛ§F§ß°C");
        std::ostream::operator<<(v78, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v79 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v79, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v80 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¶”∑|™¯°A≥Q¬Í¶b∑|øÏ™¯πF§Q≠”§pÆ…");
        std::ostream::operator<<(v80, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v81 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v81, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v82 = std::operator<<<std::char_traits<char>>(
                (int)&std::cout,
                "•X®”™∫Æ…≠‘§w§fl§O•Ê∑Ò°A§@•y∏‹§]ª°§£•X§f°A§ß´·¶A§]§£¥±´›¶b∑|øÏ°C");
        std::ostream::operator<<(v82, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v83 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v83, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v84 = std::operator<<<std::char_traits<char>>(
                (int)&std::cout,
                "¶”≥oºŒƒaÆ◊´h®S¶≥§H؇∞˜∏—ƒ¿°A¶®¨∞§Fπœ∏Í®t™∫§@§j©«ΩÕ....");
        std::ostream::operator<<(v84, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v141 = 0;
        result = badend(a1);
      }
    }
  }
  return result;
}
// 432710: using guessed type _DWORD __cdecl std::istream::operator>>(_DWORD, _DWORD);
// 4513C0: using guessed type _DWORD std::cout;
// 451460: using guessed type _DWORD std::cin;

//----- (00404A48) --------------------------------------------------------
bool *__cdecl event6(bool *a1, bool *a2, bool *a3)
{
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  int v12; // eax@1
  int v13; // eax@1
  int v14; // eax@1
  bool *result; // eax@5
  int v16; // eax@8
  int v17; // eax@8
  int v18; // eax@8
  int v19; // eax@8
  int v20; // eax@8
  int v21; // eax@8
  int v22; // eax@8
  int v23; // eax@8
  int v24; // eax@8
  int v25; // eax@8
  int v26; // eax@8
  int v27; // eax@8
  int v28; // eax@8
  int v29; // eax@8
  int v30; // eax@8
  int v31; // eax@8
  int v32; // eax@8
  int v33; // eax@8
  int v34; // eax@8
  int v35; // eax@8
  int v36; // eax@8
  int v37; // eax@8
  int v38; // eax@8
  int v39; // eax@8
  int v40; // eax@8
  int v41; // eax@8
  int v42; // eax@8
  int v43; // eax@8
  int v44; // eax@8
  int v45; // eax@15
  int v46; // eax@15
  int v47; // eax@15
  int v48; // eax@15
  int v49; // eax@16
  int v50; // eax@16
  int v51; // eax@16
  int v52; // eax@16
  int v53; // eax@17
  int v54; // eax@17
  int v55; // eax@17
  int v56; // eax@17
  int v57; // eax@17
  int v58; // eax@17
  int v59; // eax@17
  int v60; // eax@17
  int v61; // eax@17
  int v62; // eax@17
  bool *v63; // [sp+10h] [bp-8h]@8
  bool *v64; // [sp+14h] [bp-4h]@1

  v64 = 0;
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¬˜∂}§F≥o¶Â∏{™∫±–´«°AßA®´®Ï∑|øÏ•Œ∆_∞Õ∂}§F™˘°C");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u¡¬¡¬ßA!!ßA¨O≠”§j¶n§H!!°C°v");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, "∑|™¯©Ißl§F§@§U∑s¬A™≈Æ°A±µµ€ª°°C");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u™¸°AßAµ•§@§U∑|´›¶b∑|øÏ∏Ã≠±ßa°H°v");
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≠nøÔæ‹´›¶b∑|øÏ∂‹?");
  std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1. ∑|°C");
  std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2. §£∑|°C");
  std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
  while ( (signed int)v64 <= 0 || (signed int)v64 > 2 )
    std::istream::operator>>(&std::cin, &v64);
  result = v64;
  if ( v64 == (bool *)1 )
  {
    v63 = 0;
    v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u∂‚°Aß⁄µy∑Lßj§@§UßNÆ¶n§F°Aºˆ¶∫§F°C°v");
    std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ª°µ€°AßA∂i§F∑|øÏ°C");
    std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u®∫ø‡¨f∑Á§]•ÊµπßA´O∫fi≈o°v");
    std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v22 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v23 = std::operator<<<std::char_traits<char>>(
            (int)&std::cout,
            "°u≠Ë≠˶—§Ú§£™æπDπÔ§Fø‡¨f∑Á∞µ§F®«§∞ªÚ°AßA≠n¶n¶n´O≈@•L≥·°C°v");
    std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v24 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v25 = std::operator<<<std::char_traits<char>>((int)&std::cout, "∑|™¯ß‚§@≠”™¯±o¶≥¬I؉؉™∫•¨∞∏•Ê®Ï§FßA™∫§‚§W");
    std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v26 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v27 = std::operator<<<std::char_traits<char>>(
            (int)&std::cout,
            "¡ˆµMßA´‹∑Q∞›∑|™¯≥o¨O§∞ªÚ™F¶Ë°A§£πL√™µ€∑|™¯™∫≠±§lßA¡Ÿ¨OØ∫Ø∫™∫ª°°C");
    std::ostream::operator<<(v27, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v28 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v28, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v29 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u•]¶bß⁄®≠§Wßa°C°v");
    std::ostream::operator<<(v29, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v30 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v30, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v31 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u®∫¥NŸT≈o°C°v");
    std::ostream::operator<<(v31, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v32 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v32, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v33 = std::operator<<<std::char_traits<char>>((int)&std::cout, "∑|™¯ª°ßπ¥N≈S•X§F§@≠”ªXÆRƒR≤Ô™∫Ø∫Æe®´±º§F°C");
    std::ostream::operator<<(v33, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v34 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v34, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v35 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßAßj§F§@∑|ßNÆ°A¨µMƒ±±o¶A≥oªÚ´›§U•h§]®S§∞ªÚΩÏ®˝");
    std::ostream::operator<<(v35, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v36 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v36, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v37 = std::operator<<<std::char_traits<char>>((int)&std::cout, "©“•HßA∑«≥∆¬˜∂}∑|øÏ");
    std::ostream::operator<<(v37, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v38 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v38, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v39 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§£πL¶b¬˜∂}§ß´eßA¨›®Ï§Fø‡¨f∑Á•ø≈S•Xµ€§›∏fi™∫¡y°C");
    std::ostream::operator<<(v39, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v40 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v40, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v41 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≠n±a®´ø‡¨f∑Á∂‹°H");
    std::ostream::operator<<(v41, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v42 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v42, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v43 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1. §£≠n");
    std::ostream::operator<<(v43, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v44 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2. ±a®´");
    std::ostream::operator<<(v44, (int (*)(void))std::endl<char,std::char_traits<char>>);
    while ( (signed int)v63 <= 0 || (signed int)v63 > 2 )
      std::istream::operator>>(&std::cin, &v63);
    result = v63;
    if ( v63 == (bool *)1 )
    {
      v45 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v45, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v46 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u§~§£≠n°IÆ≥µ€≥o≠”®´¶b∏Ù§W∑|≥Q§HØ∫™∫°I°v");
      std::ostream::operator<<(v46, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v47 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v47, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v48 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA≠´≠´™∫ß‚ø‡¨f∑Á∫L¶b¶a§W°AµM´·®´•X∑|øÏ°C");
      std::ostream::operator<<(v48, (int (*)(void))std::endl<char,std::char_traits<char>>);
      result = (bool *)pass();
    }
    else if ( v63 == (bool *)2 )
    {
      v49 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v49, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v50 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u¨JµM∑|™¯≥£≥oªÚæπ≠´ß⁄§F°A®∫ß⁄¡Ÿ¨OÆ≥µ€¶n§F°C°v");
      std::ostream::operator<<(v50, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v51 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v51, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v52 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¿Ú±oπD®„°G´ÀßB•¨∞∏§@∞¶");
      std::ostream::operator<<(v52, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      result = a3;
      *a3 = 1;
    }
  }
  else if ( v64 == (bool *)2 )
  {
    v53 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v53, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v54 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u®S¶≥∞⁄°A´›∑|ß⁄®Ï≥B∂¢≥}§@§U¥N≠n®´§F°C°v");
    std::ostream::operator<<(v54, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v55 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v55, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v56 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≥·...®∫ß⁄ß‚∑|øϬÍ∞_®”¶n§F°C°v");
    std::ostream::operator<<(v56, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v57 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v57, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v58 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ß‚∑|øÏ∏Ã≠±™∫øO√ˆ±º§ß´·°A∑|™¯ß‚™˘¬Í§F∞_®”°C");
    std::ostream::operator<<(v58, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v59 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v59, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v60 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u®∫∆_∞Õ¥N≥¬∑–ßA¡Ÿ∞’°C°v");
    std::ostream::operator<<(v60, (int (*)(void))std::endl<char,std::char_traits<char>>);
    pass();
    v61 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v61, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v62 = std::operator<<<std::char_traits<char>>((int)&std::cout, "∑|™¯≥oªÚª°µ€°A≈S•X§F§@≠”ªXÆRƒR≤Ô™∫Ø∫Æe®´±º§F°C");
    std::ostream::operator<<(v62, (int (*)(void))std::endl<char,std::char_traits<char>>);
    result = (bool *)pass();
  }
  return result;
}
// 432710: using guessed type _DWORD __cdecl std::istream::operator>>(_DWORD, _DWORD);
// 4513C0: using guessed type _DWORD std::cout;
// 451460: using guessed type _DWORD std::cin;

//----- (004053B4) --------------------------------------------------------
bool *__cdecl event7(bool *a1, bool *a2, bool *a3)
{
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  int v12; // eax@1
  int v13; // eax@1
  int v14; // eax@1
  int v15; // eax@1
  int v16; // eax@1
  int v17; // eax@1
  int v18; // eax@1
  int v19; // eax@2
  int v20; // eax@2
  int v21; // eax@2
  int v22; // eax@2
  int v23; // eax@2
  int v24; // eax@2
  int v25; // eax@2
  int v26; // eax@2
  bool *result; // eax@6
  int v28; // eax@7
  int v29; // eax@7
  int v30; // eax@7
  int v31; // eax@7
  int v32; // eax@8
  int v33; // eax@8
  int v34; // eax@8
  int v35; // eax@8
  int v36; // eax@8
  int v37; // eax@8
  int v38; // eax@9
  int v39; // eax@9
  int v40; // eax@9
  int v41; // eax@10
  int v42; // eax@11
  int v43; // eax@18
  int v44; // eax@18
  int v45; // eax@18
  int v46; // eax@18
  int v47; // eax@18
  int v48; // eax@18
  int v49; // eax@18
  int v50; // eax@18
  int v51; // eax@18
  int v52; // eax@18
  int v53; // eax@18
  int v54; // eax@18
  int v55; // eax@19
  int v56; // eax@19
  int v57; // eax@20
  int v58; // eax@20
  int v59; // eax@20
  int v60; // eax@21
  int v61; // eax@23
  int v62; // eax@24
  int v63; // eax@37
  int v64; // eax@37
  int v65; // eax@37
  int v66; // eax@37
  int v67; // eax@39
  int v68; // eax@39
  int v69; // eax@39
  int v70; // eax@39
  int v71; // eax@40
  int v72; // eax@40
  int v73; // eax@40
  int v74; // eax@41
  int v75; // eax@41
  int v76; // eax@41
  int v77; // eax@41
  int v78; // eax@41
  int v79; // eax@41
  int v80; // eax@41
  int v81; // eax@41
  int v82; // eax@41
  int v83; // eax@41
  char v84; // [sp+1Fh] [bp-9h]@20
  int j; // [sp+20h] [bp-8h]@9
  int i; // [sp+24h] [bp-4h]@1

  i = 0;
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¬˜∂}§F∑|øÏ°C");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, "©øµMƒ±±o≥±≠∑•|∞_°A¶≥™—¥H∑N∂∂µ€∏}©≥™¶§F§W®”°C");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¬‡¿Y§@¨›°A≥صœºw•X≤{¶bßA™∫®≠´·°C");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°ußA≠Ë≠Ë≥∫¥±√aß⁄™∫¶n®∆°A∑«≥∆®¸¶∫ßa°A´¢´¢´¢´¢°I°I°I°v");
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºwµo®g¶¸™∫§jØ∫°A•˚Ø´¥c∑Ÿ™∫¥¬ßA®´§FπL®”°C");
  std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u¶pß⁄§µ§—∞h¡Y™∫∏‹°A∑|¶≥ßÛ¶h§H®¸Æ`™∫!!°v");
  std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v15 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u¥N•—ß⁄®”¿ª±—ßAßa!!°v");
  std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±j®Ó∂i§Jæ‘∞´!!");
  std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  do
  {
    v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≤{¶b≠n´ÁªÚ∞µ?");
    std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1.ß¿ª");
    std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v22 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2.®æ¶u");
    std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v23 = std::operator<<<std::char_traits<char>>((int)&std::cout, "3.ßfi؇");
    std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v24 = std::operator<<<std::char_traits<char>>((int)&std::cout, "4.πD®„");
    std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v25 = std::operator<<<std::char_traits<char>>((int)&std::cout, "5.∞k∂]");
    std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
    v26 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
    std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
    for ( i = 0; i <= 0 || i > 5; std::istream::operator>>(&std::cin, &i) )
      ;
    result = (bool *)i;
    switch ( i )
    {
      case 1:
        v28 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v28, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v29 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¥¬µ€≥صœºw™∫¡y§@Ʊ•¥§FπL•h!!");
        std::ostream::operator<<(v29, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v30 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v30, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v31 = std::operator<<<std::char_traits<char>>((int)&std::cout, "´o•¥§F≠”™≈°A•u®£≥صœºwßNØ∫µ€Ø∏¶bßA™∫®≠´·°C");
        std::ostream::operator<<(v31, (int (*)(void))std::endl<char,std::char_traits<char>>);
        result = (bool *)pass();
        break;
      case 2:
        v32 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v32, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v33 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA±ƒ®˙®æ¶u¨[¶°");
        std::ostream::operator<<(v33, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v34 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v34, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v35 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§£πL≥صœºw•u¨OßNØ∫µ€°A§∞ªÚ®∆§]®S∞µ°C");
        std::ostream::operator<<(v35, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v36 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v36, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v37 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§∞ªÚ®∆§]®S¶≥µo•Õ°C");
        std::ostream::operator<<(v37, (int (*)(void))std::endl<char,std::char_traits<char>>);
        result = (bool *)pass();
        break;
      case 3:
        j = 0;
        v38 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v38, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v39 = std::operator<<<std::char_traits<char>>((int)&std::cout, "Ω–øÔæ‹ßfi؇:");
        std::ostream::operator<<(v39, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v40 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<1>°u≈R∆E•d≈R∆E∞’∞’°A™i™i≤˙ÆR®©®©æ|¶h....°v");
        std::ostream::operator<<(v40, (int (*)(void))std::endl<char,std::char_traits<char>>);
        if ( *a2 )
        {
          v41 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<2>Ω’æ„§‚øˆ");
          std::ostream::operator<<(v41, (int (*)(void))std::endl<char,std::char_traits<char>>);
        }
        v42 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v42, (int (*)(void))std::endl<char,std::char_traits<char>>);
        for ( j = 0; j <= 0 || j > 2; std::istream::operator>>(&std::cin, &j) )
          ;
        result = (bool *)j;
        if ( j == 1 )
        {
          v43 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v43, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v44 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA§‚´¸µ€≥صœºwπÔ•L©¿µ€");
          std::ostream::operator<<(v44, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v45 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v45, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v46 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≈R∆E•d≈R∆E∞’∞’°A™i™i≤˙ÆR®©®©æ|¶h!!!°v");
          std::ostream::operator<<(v46, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v47 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v47, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v48 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§∞ªÚ®∆§]®Sµo•Õ°C");
          std::ostream::operator<<(v48, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v49 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v49, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v50 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u´¢´¢´¢!ßAß—§F≥€[ª¥√P∂}Æ‘]!°v");
          std::ostream::operator<<(v50, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v51 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v51, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v52 = std::operator<<<std::char_traits<char>>(
                  (int)&std::cout,
                  "≥صœºw±q®M∞´ΩL∏é‚•X§@±iC++ Builder•˙∫–¥¬ßAÆg•h°C");
          std::ostream::operator<<(v52, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v53 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v53, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v54 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶∫§F°C");
          std::ostream::operator<<(v54, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          result = deadend(a1);
          i = 1;
        }
        else if ( j == 2 )
        {
          v55 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v55, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v56 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§∞ªÚ®∆§]®S¶≥µo•Õ°C");
          std::ostream::operator<<(v56, (int (*)(void))std::endl<char,std::char_traits<char>>);
          result = (bool *)pass();
        }
        break;
      case 4:
        v84 = 1;
        v57 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v57, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v58 = std::operator<<<std::char_traits<char>>((int)&std::cout, "Ω–øÔæ‹πD®„:");
        std::ostream::operator<<(v58, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v59 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<1>∫N§@∫N§f≥U¨›¨›");
        std::ostream::operator<<(v59, (int (*)(void))std::endl<char,std::char_traits<char>>);
        if ( *a2 )
        {
          v60 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<2>•ø¶N•d");
          std::ostream::operator<<(v60, (int (*)(void))std::endl<char,std::char_traits<char>>);
        }
        if ( *a3 )
        {
          v61 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<3>ø‡¨f∑Á");
          std::ostream::operator<<(v61, (int (*)(void))std::endl<char,std::char_traits<char>>);
        }
        v62 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        result = (bool *)std::ostream::operator<<(v62, (int (*)(void))std::endl<char,std::char_traits<char>>);
        while ( v84 )
        {
          for ( j = 0; j <= 0 || j > 3; std::istream::operator>>(&std::cin, &j) )
            ;
          result = (bool *)j;
          if ( j == 2 )
          {
            result = a2;
            if ( *a2 )
            {
              v63 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
              std::ostream::operator<<(v63, (int (*)(void))std::endl<char,std::char_traits<char>>);
              v64 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•l≥Í•X§@≠”...ƒÍ±º™∫ßı•ø¶N...");
              std::ostream::operator<<(v64, (int (*)(void))std::endl<char,std::char_traits<char>>);
              pass();
              v65 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
              std::ostream::operator<<(v65, (int (*)(void))std::endl<char,std::char_traits<char>>);
              v66 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§@¬I•Œ≥B§]®S¶≥°I");
              std::ostream::operator<<(v66, (int (*)(void))std::endl<char,std::char_traits<char>>);
              result = (bool *)pass();
              v84 = 0;
            }
          }
          else if ( j > 2 )
          {
            if ( j == 3 )
            {
              result = a3;
              if ( *a3 )
              {
                v67 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
                std::ostream::operator<<(v67, (int (*)(void))std::endl<char,std::char_traits<char>>);
                v68 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßAß‚ø‡¨f∑Á´”Æ™∫∞™∞™¡|∞_");
                std::ostream::operator<<(v68, (int (*)(void))std::endl<char,std::char_traits<char>>);
                pass();
                v69 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
                std::ostream::operator<<(v69, (int (*)(void))std::endl<char,std::char_traits<char>>);
                v70 = std::operator<<<std::char_traits<char>>(
                        (int)&std::cout,
                        "§£πL≥صœºw§∞ªÚ®∆§]®S∞µ°A©“•H§∞ªÚ®∆§]®S¶≥µo•Õ°C");
                std::ostream::operator<<(v70, (int (*)(void))std::endl<char,std::char_traits<char>>);
                result = (bool *)pass();
                v84 = 0;
              }
            }
          }
          else if ( j == 1 )
          {
            v71 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v71, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v72 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶˘§‚©πø«§l§f≥U∏ìΩ߉πD®„°C");
            std::ostream::operator<<(v72, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v73 = std::operator<<<std::char_traits<char>>((int)&std::cout, "µ≤™GßAµo≤{ßA®√®S¶≥¨Ôø«§l°C");
            std::ostream::operator<<(v73, (int (*)(void))std::endl<char,std::char_traits<char>>);
            result = (bool *)pass();
            v84 = 0;
          }
        }
        break;
      case 5:
        v74 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v74, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v75 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA≠IπÔ≥صœºw∂]§F®‚®B°C");
        std::ostream::operator<<(v75, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v76 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v76, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v77 = std::operator<<<std::char_traits<char>>((int)&std::cout, "µ≤™Gµoƒ±≥صœºw™∫®{§læ◊¶bßA™∫≠±´e°C");
        std::ostream::operator<<(v77, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v78 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v78, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v79 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶^¿Y§@¨›°Aµ≤™Gµoƒ±®‚√‰≥£¶≥≥صœºw™∫®{§l°C");
        std::ostream::operator<<(v79, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v80 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v80, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v81 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≥∫µM¨O§¿®≠≥N°I°I°v");
        std::ostream::operator<<(v81, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v82 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v82, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v83 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≤{¶b...•u؇æ‘∞´§F°I°v");
        std::ostream::operator<<(v83, (int (*)(void))std::endl<char,std::char_traits<char>>);
        result = (bool *)pass();
        break;
      case 0:
        break;
    }
  }
  while ( i != 1 );
  return result;
}
// 432710: using guessed type _DWORD __cdecl std::istream::operator>>(_DWORD, _DWORD);
// 4513C0: using guessed type _DWORD std::cout;
// 451460: using guessed type _DWORD std::cin;

//----- (00406106) --------------------------------------------------------
bool *__cdecl event8(bool *a1, bool *a2, bool *a3)
{
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  int v12; // eax@1
  int v13; // eax@1
  int v14; // eax@1
  int v15; // eax@1
  int v16; // eax@1
  bool *result; // eax@5
  int v18; // eax@6
  int v19; // eax@6
  int v20; // eax@6
  int v21; // eax@6
  int v22; // eax@6
  int v23; // eax@6
  int v24; // eax@6
  int v25; // eax@6
  int v26; // eax@6
  int v27; // eax@6
  int v28; // eax@7
  int v29; // eax@7
  int v30; // eax@7
  int v31; // eax@7
  int v32; // eax@7
  int v33; // eax@7
  int v34; // eax@7
  int v35; // eax@7
  int v36; // eax@7
  int v37; // eax@7
  int v38; // eax@8
  int v39; // eax@8
  int v40; // eax@8
  int v41; // eax@9
  int v42; // eax@10
  int v43; // eax@17
  int v44; // eax@17
  int v45; // eax@17
  int v46; // eax@17
  int v47; // eax@17
  int v48; // eax@17
  int v49; // eax@17
  int v50; // eax@17
  int v51; // eax@17
  int v52; // eax@17
  int v53; // eax@17
  int v54; // eax@17
  int v55; // eax@17
  int v56; // eax@17
  int v57; // eax@17
  int v58; // eax@17
  int v59; // eax@18
  int v60; // eax@18
  int v61; // eax@18
  int v62; // eax@18
  int v63; // eax@19
  int v64; // eax@19
  int v65; // eax@19
  int v66; // eax@20
  int v67; // eax@22
  int v68; // eax@23
  int v69; // eax@36
  int v70; // eax@36
  int v71; // eax@36
  int v72; // eax@36
  int v73; // eax@36
  int v74; // eax@36
  int v75; // eax@36
  int v76; // eax@36
  int v77; // eax@36
  int v78; // eax@36
  int v79; // eax@36
  int v80; // eax@36
  int v81; // eax@36
  int v82; // eax@36
  int v83; // eax@38
  int v84; // eax@38
  int v85; // eax@38
  int v86; // eax@38
  int v87; // eax@38
  int v88; // eax@38
  int v89; // eax@38
  int v90; // eax@38
  int v91; // eax@38
  int v92; // eax@38
  int v93; // eax@39
  int v94; // eax@39
  int v95; // eax@39
  int v96; // eax@39
  int v97; // eax@39
  int v98; // eax@39
  int v99; // eax@39
  int v100; // eax@39
  int v101; // eax@39
  int v102; // eax@39
  int v103; // eax@39
  int v104; // eax@39
  int v105; // eax@39
  int v106; // eax@39
  int v107; // eax@40
  int v108; // eax@40
  int v109; // eax@40
  int v110; // eax@40
  int v111; // eax@40
  int v112; // eax@40
  int v113; // eax@40
  int v114; // eax@40
  int v115; // eax@40
  int v116; // eax@40
  int j; // [sp+10h] [bp-8h]@8
  bool *i; // [sp+14h] [bp-4h]@1

  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºw∂}©lßC¡n≥‰≥‰©¿µ€§@¶Í§£™æπD¨O§∞ªÚ™∫™F¶Ë°C");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°ußA≠Ã∞⁄°A•≠±`¶≥™≈¥N≠n¶hºgºgµ{¶°°AßA¨›ßA≠î∫≠”¨Y¨Yæ«™¯°C°v");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u•Lπq∏£¥N´‹§£ø˘°A≤{¶b¶b¨Y¨Y§Ω•q§WØZ°AºT≠˘• ©‘....°v");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßAƒ±±o¿Y∂V®”∂V≠´°Aß÷≠n∫Œµ€§F°C");
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≤{¶b∏”´ÁªÚøÏ°H");
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1. ß¿ª");
  std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2. ®æ¶u");
  std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, "3. ßfi؇");
  std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v15 = std::operator<<<std::char_traits<char>>((int)&std::cout, "4. πD®„");
  std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, "5. ∞k∂]");
  std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
  for ( i = 0; (signed int)i <= 0 || (signed int)i > 5; std::istream::operator>>(&std::cin, &i) )
    ;
  result = i;
  switch ( i )
  {
    case 1u:
      v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA§@Ʊ•¥§FπL•h°A§£πL©Ëß‹§£§F∫Œ∑N¥N≠w§F§U•h°C");
      std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≤{¶b...¶∫ßa...°v");
      std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v22 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v23 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u؇≈•®£§@≠”º“Ωk™∫¡n≠µ°C");
      std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v24 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v25 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±µµ€≠I§W∂«®”§@∞}µh∑N°C");
      std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v26 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v27 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA≤¥´e§@∂¬°A§∞ªÚ≥£§£™æπD§F°C");
      std::ostream::operator<<(v27, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      result = deadend(a1);
      break;
    case 2u:
      v28 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v28, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v29 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¡Ÿ®S∂}©l∞ ß@°A¥N©Ëß‹§£§F∫Œ∑N≠À§F§U•h°C");
      std::ostream::operator<<(v29, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v30 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v30, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v31 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≤{¶b...¶∫ßa...°v");
      std::ostream::operator<<(v31, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v32 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v32, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v33 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u؇≈•®£§@≠”º“Ωk™∫¡n≠µ°C");
      std::ostream::operator<<(v33, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v34 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v34, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v35 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±µµ€≠I§W∂«®”§@∞}µh∑N°C");
      std::ostream::operator<<(v35, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v36 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v36, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v37 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA≤¥´e§@∂¬°A§∞ªÚ≥£§£™æπD§F°C");
      std::ostream::operator<<(v37, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      result = deadend(a1);
      break;
    case 3u:
      j = 0;
      v38 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v38, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v39 = std::operator<<<std::char_traits<char>>((int)&std::cout, "Ω–øÔæ‹ßfi؇:");
      std::ostream::operator<<(v39, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v40 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<1>°u≈R∆E•d≈R∆E∞’∞’°A™i™i≤˙ÆR®©®©æ|¶h....°v");
      std::ostream::operator<<(v40, (int (*)(void))std::endl<char,std::char_traits<char>>);
      if ( *a2 )
      {
        v41 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<2>Ω’æ„§‚øˆ");
        std::ostream::operator<<(v41, (int (*)(void))std::endl<char,std::char_traits<char>>);
      }
      v42 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v42, (int (*)(void))std::endl<char,std::char_traits<char>>);
      for ( j = 0; j <= 0 || j > 2; std::istream::operator>>(&std::cin, &j) )
        ;
      result = (bool *)j;
      if ( j == 1 )
      {
        v43 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v43, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v44 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA§‚´¸µ€≥صœºwπÔ•L©¿µ€");
        std::ostream::operator<<(v44, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v45 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v45, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v46 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≈R∆E•d≈R∆E∞’∞’°A™i™i≤˙ÆR®©®©æ|¶h!!!°v");
        std::ostream::operator<<(v46, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v47 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v47, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v48 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§∞ªÚ®∆§]®Sµo•Õ°C");
        std::ostream::operator<<(v48, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v49 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v49, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v50 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u´¢´¢´¢!ßAß—§F≥€[ª¥√P∂}Æ‘]!°v");
        std::ostream::operator<<(v50, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v51 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v51, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v52 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≤{¶b...¶∫ßa...°v");
        std::ostream::operator<<(v52, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v53 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v53, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v54 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u؇≈•®£§@≠”º“Ωk™∫¡n≠µ°C");
        std::ostream::operator<<(v54, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v55 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v55, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v56 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±µµ€≠I§W∂«®”§@∞}µh∑N°C");
        std::ostream::operator<<(v56, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v57 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v57, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v58 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA≤¥´e§@∂¬°A§∞ªÚ≥£§£™æπD§F°C");
        std::ostream::operator<<(v58, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        result = deadend(a1);
      }
      else if ( j == 2 )
      {
        v59 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v59, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v60 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA±N§‚øˆΩ’®Ï§F§UΩ“Æ…∂°°A∫ÎØ´¨µM¶n§F∞_®”°C");
        std::ostream::operator<<(v60, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v61 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v61, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v62 = std::operator<<<std::char_traits<char>>((int)&std::cout, "•i•Hƒ~ƒÚæ‘∞´§F!!");
        std::ostream::operator<<(v62, (int (*)(void))std::endl<char,std::char_traits<char>>);
        result = (bool *)pass();
      }
      break;
    case 4u:
      j = 0;
      v63 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v63, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v64 = std::operator<<<std::char_traits<char>>((int)&std::cout, "Ω–øÔæ‹πD®„:");
      std::ostream::operator<<(v64, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v65 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<1>∫N§@∫N§f≥U¨›¨›");
      std::ostream::operator<<(v65, (int (*)(void))std::endl<char,std::char_traits<char>>);
      if ( *a2 )
      {
        v66 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<2>•ø¶N•d");
        std::ostream::operator<<(v66, (int (*)(void))std::endl<char,std::char_traits<char>>);
      }
      if ( *a3 )
      {
        v67 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<3>ø‡¨f∑Á");
        std::ostream::operator<<(v67, (int (*)(void))std::endl<char,std::char_traits<char>>);
      }
      v68 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v68, (int (*)(void))std::endl<char,std::char_traits<char>>);
      while ( 1 )
      {
        result = a1;
        if ( !*a1 )
          break;
        for ( j = 0; j <= 0 || j > 3; std::istream::operator>>(&std::cin, &j) )
          ;
        if ( j == 2 )
        {
          if ( *a2 )
          {
            v69 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v69, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v70 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•l≥Í•X§@≠”...ƒÍ±º™∫ßı•ø¶N...");
            std::ostream::operator<<(v70, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v71 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v71, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v72 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§@¬I•Œ≥B§]®S¶≥°I");
            std::ostream::operator<<(v72, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v73 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v73, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v74 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA§‰ºµ§£¶Ì≠À¶bƒÍ±º™∫ßı•ø¶N§W°C");
            std::ostream::operator<<(v74, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v75 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v75, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v76 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≤{¶b...¶∫ßa...°v");
            std::ostream::operator<<(v76, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v77 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v77, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v78 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u؇≈•®£§@≠”º“Ωk™∫¡n≠µ°C");
            std::ostream::operator<<(v78, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v79 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v79, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v80 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±µµ€≠I§W∂«®”§@∞}µh∑N°C");
            std::ostream::operator<<(v80, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v81 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v81, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v82 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA≤¥´e§@∂¬°A§∞ªÚ≥£§£™æπD§F°C");
            std::ostream::operator<<(v82, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            deadend(a1);
          }
        }
        else if ( j > 2 )
        {
          if ( j == 3 && *a3 )
          {
            v83 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v83, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v84 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA≠Ë≠nÆ≥∞_ø‡¨f∑Á¿…¶b®≠´e¥N≠À§F§U•h°C");
            std::ostream::operator<<(v84, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v85 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v85, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v86 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≤{¶b...¶∫ßa...°v");
            std::ostream::operator<<(v86, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v87 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v87, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v88 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u؇≈•®£§@≠”º“Ωk™∫¡n≠µ°C");
            std::ostream::operator<<(v88, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v89 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v89, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v90 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±µµ€≠I§W∂«®”§@∞}µh∑N°C");
            std::ostream::operator<<(v90, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v91 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v91, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v92 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA≤¥´e§@∂¬°A§∞ªÚ≥£§£™æπD§F°C");
            std::ostream::operator<<(v92, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            deadend(a1);
          }
        }
        else if ( j == 1 )
        {
          v93 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v93, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v94 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶˘§‚©πø«§l§f≥U∏ìΩ߉πD®„°C");
          std::ostream::operator<<(v94, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v95 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v95, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v96 = std::operator<<<std::char_traits<char>>((int)&std::cout, "µ≤™GßAµo≤{ßA®√®S¶≥¨Ôø«§l°C");
          std::ostream::operator<<(v96, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v97 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v97, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v98 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•˙µ€ßæ™—™∫≠À§U§F°C");
          std::ostream::operator<<(v98, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v99 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v99, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v100 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≤{¶b...¶∫ßa...°v");
          std::ostream::operator<<(v100, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v101 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v101, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v102 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u؇≈•®£§@≠”º“Ωk™∫¡n≠µ°C");
          std::ostream::operator<<(v102, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v103 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v103, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v104 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±µµ€ßæ™—∂«®”§@∞}µh∑N°C");
          std::ostream::operator<<(v104, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v105 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v105, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v106 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA≤¥´e§@∂¬°A§∞ªÚ≥£§£™æπD§F°C");
          std::ostream::operator<<(v106, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          deadend(a1);
        }
      }
      break;
    case 5u:
      v107 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v107, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v108 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•ø≠n∞k∂]™∫Æ…≠‘°A∏}§U§@≥n¥N≠À§F§U•h°C");
      std::ostream::operator<<(v108, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v109 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v109, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v110 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≤{¶b...¶∫ßa...°v");
      std::ostream::operator<<(v110, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v111 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v111, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v112 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u؇≈•®£§@≠”º“Ωk™∫¡n≠µ°C");
      std::ostream::operator<<(v112, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v113 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v113, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v114 = std::operator<<<std::char_traits<char>>((int)&std::cout, "±µµ€≠I§W∂«®”§@∞}µh∑N°C");
      std::ostream::operator<<(v114, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v115 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v115, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v116 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA≤¥´e§@∂¬°A§∞ªÚ≥£§£™æπD§F°C");
      std::ostream::operator<<(v116, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      result = deadend(a1);
      break;
    case 0u:
      return result;
  }
  return result;
}
// 432710: using guessed type _DWORD __cdecl std::istream::operator>>(_DWORD, _DWORD);
// 4513C0: using guessed type _DWORD std::cout;
// 451460: using guessed type _DWORD std::cin;

//----- (0040737A) --------------------------------------------------------
int __cdecl event9(bool *a1, bool *a2, bool *a3)
{
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  int v12; // eax@1
  int v13; // eax@1
  int v14; // eax@1
  int result; // eax@5
  int v16; // eax@6
  int v17; // eax@6
  int v18; // eax@6
  int v19; // eax@6
  int v20; // eax@6
  int v21; // eax@6
  int v22; // eax@6
  int v23; // eax@6
  int v24; // eax@7
  int v25; // eax@7
  int v26; // eax@7
  int v27; // eax@7
  int v28; // eax@7
  int v29; // eax@7
  int v30; // eax@8
  int v31; // eax@8
  int v32; // eax@8
  int v33; // eax@9
  int v34; // eax@10
  int v35; // eax@17
  int v36; // eax@17
  int v37; // eax@17
  int v38; // eax@17
  int v39; // eax@17
  int v40; // eax@17
  int v41; // eax@17
  int v42; // eax@17
  int v43; // eax@17
  int v44; // eax@17
  int v45; // eax@17
  int v46; // eax@17
  int v47; // eax@17
  int v48; // eax@17
  int v49; // eax@18
  int v50; // eax@18
  int v51; // eax@18
  int v52; // eax@18
  int v53; // eax@18
  int v54; // eax@18
  int v55; // eax@18
  int v56; // eax@18
  int v57; // eax@19
  int v58; // eax@19
  int v59; // eax@19
  int v60; // eax@20
  int v61; // eax@22
  int v62; // eax@23
  int v63; // eax@37
  int v64; // eax@37
  int v65; // eax@37
  int v66; // eax@37
  int v67; // eax@37
  int v68; // eax@37
  int v69; // eax@37
  int v70; // eax@37
  int v71; // eax@37
  int v72; // eax@37
  int v73; // eax@39
  int v74; // eax@39
  int v75; // eax@39
  int v76; // eax@39
  int v77; // eax@40
  int v78; // eax@40
  int v79; // eax@40
  int v80; // eax@40
  int v81; // eax@40
  int v82; // eax@40
  int v83; // eax@40
  int v84; // eax@40
  int v85; // eax@40
  int v86; // eax@40
  int v87; // eax@41
  int v88; // eax@41
  int v89; // eax@41
  int v90; // eax@41
  int v91; // eax@41
  int v92; // eax@41
  char v93; // [sp+1Fh] [bp-9h]@19
  int j; // [sp+20h] [bp-8h]@8
  int i; // [sp+24h] [bp-4h]@1

  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u©I´¢´¢´¢´¢°AßA≥∫µM¿…§U§Fß⁄≥o§@©€°v");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u®∫ªÚ≥o§@©€¶p¶Û©O°I∞⁄´zÀ„≥ÿÀ„∞’°I°I°v");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºw®œ•X§FºLØ•°A§@∞}•’•˙¥¬ßAΩƒ§FπL®”°C");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≤{¶b∏”´ÁªÚøÏ°H");
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, "1. ß¿ª");
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, "2. ®æ¶u");
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, "3. ßfi؇");
  std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, "4. πD®„");
  std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, "5. ∞k∂]");
  std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
  for ( i = 0; i <= 0 || i > 5; std::istream::operator>>(&std::cin, &i) )
    ;
  result = i;
  switch ( i )
  {
    case 1:
      v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA§£≈U¶€®≠™∫¶M¿I™Ω™Ω™∫¥¬≥صœºwΩƒ§FπL•h°C");
      std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, "´o≥Q•’•˙•¥§F≠”•øµ€°C");
      std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u∑Pƒ±®Ï•˛®≠§@∞}µh∑°°A±µµ€≤¥´e§@∂¬°C");
      std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v22 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v23 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶∫§F°C");
      std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      result = (int)deadend(a1);
      break;
    case 2:
      v24 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v25 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¨[∞_§‚°A•ø≠±™Ô¿ª•’•˙°C");
      std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v26 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v27 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u∑Pƒ±®Ï•˛®≠§@∞}µh∑°°A±µµ€≤¥´e§@∂¬°C");
      std::ostream::operator<<(v27, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v28 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v28, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v29 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶∫§F°C");
      std::ostream::operator<<(v29, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      result = (int)deadend(a1);
      break;
    case 3:
      j = 0;
      v30 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v30, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v31 = std::operator<<<std::char_traits<char>>((int)&std::cout, "Ω–øÔæ‹ßfi؇:");
      std::ostream::operator<<(v31, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v32 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<1>°u≈R∆E•d≈R∆E∞’∞’°A™i™i≤˙ÆR®©®©æ|¶h....°v");
      std::ostream::operator<<(v32, (int (*)(void))std::endl<char,std::char_traits<char>>);
      if ( *a2 )
      {
        v33 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<2>Ω’æ„§‚øˆ");
        std::ostream::operator<<(v33, (int (*)(void))std::endl<char,std::char_traits<char>>);
      }
      v34 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v34, (int (*)(void))std::endl<char,std::char_traits<char>>);
      i = 0;
      while ( j <= 0 || j > 2 )
        std::istream::operator>>(&std::cin, &j);
      result = j;
      if ( j == 1 )
      {
        v35 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v35, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v36 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA§‚´¸µ€≥صœºwπÔ•L©¿µ€");
        std::ostream::operator<<(v36, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v37 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v37, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v38 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≈R∆E•d≈R∆E∞’∞’°A™i™i≤˙ÆR®©®©æ|¶h!!!°v");
        std::ostream::operator<<(v38, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v39 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v39, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v40 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§∞ªÚ®∆§]®Sµo•Õ°C");
        std::ostream::operator<<(v40, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v41 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v41, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v42 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u´¢´¢´¢!ßAß—§F≥€[ª¥√P∂}Æ‘]!°v");
        std::ostream::operator<<(v42, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v43 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v43, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v44 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºw©“µo•X™∫•’•˙¥¬ßA•¥§FπL®”°C");
        std::ostream::operator<<(v44, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v45 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v45, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v46 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u∑Pƒ±®Ï•˛®≠§@∞}µh∑°°A±µµ€≤¥´e§@∂¬°C");
        std::ostream::operator<<(v46, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v47 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v47, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v48 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶∫§F°C");
        std::ostream::operator<<(v48, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        result = (int)deadend(a1);
      }
      else if ( j == 2 )
      {
        v49 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v49, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v50 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¬‡§F¥X§U§‚øˆ°A§∞ªÚ®∆§]®Sµo•Õ°C");
        std::ostream::operator<<(v50, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v51 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v51, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v52 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºw©“µo•X™∫•’•˙¥¬ßA•¥§FπL®”°C");
        std::ostream::operator<<(v52, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v53 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v53, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v54 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u∑Pƒ±®Ï•˛®≠§@∞}µh∑°°A±µµ€≤¥´e§@∂¬°C");
        std::ostream::operator<<(v54, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        v55 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
        std::ostream::operator<<(v55, (int (*)(void))std::endl<char,std::char_traits<char>>);
        v56 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶∫§F°C");
        std::ostream::operator<<(v56, (int (*)(void))std::endl<char,std::char_traits<char>>);
        pass();
        result = (int)deadend(a1);
      }
      break;
    case 4:
      j = 0;
      v93 = 1;
      v57 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v57, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v58 = std::operator<<<std::char_traits<char>>((int)&std::cout, "Ω–øÔæ‹πD®„:");
      std::ostream::operator<<(v58, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v59 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<1>∫N§@∫N§f≥U¨›¨›");
      std::ostream::operator<<(v59, (int (*)(void))std::endl<char,std::char_traits<char>>);
      if ( *a2 )
      {
        v60 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<2>•ø¶N•d");
        std::ostream::operator<<(v60, (int (*)(void))std::endl<char,std::char_traits<char>>);
      }
      if ( *a3 )
      {
        v61 = std::operator<<<std::char_traits<char>>((int)&std::cout, "<3>ø‡¨f∑Á");
        std::ostream::operator<<(v61, (int (*)(void))std::endl<char,std::char_traits<char>>);
      }
      v62 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v62, (int (*)(void))std::endl<char,std::char_traits<char>>);
      while ( 1 )
      {
        result = (int)a1;
        if ( !*a1 || !v93 )
          break;
        for ( j = 0; j <= 0 || j > 3; std::istream::operator>>(&std::cin, &j) )
          ;
        if ( j == 2 )
        {
          if ( *a2 )
          {
            v63 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v63, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v64 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•l≥Í•X§@≠”...ƒÍ±º™∫ßı•ø¶N...");
            std::ostream::operator<<(v64, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v65 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v65, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v66 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§@¬I•Œ≥B§]®S¶≥°I");
            std::ostream::operator<<(v66, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v67 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v67, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v68 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºw©“µo•X™∫•’•˙¥¬ßA•¥§FπL®”°C");
            std::ostream::operator<<(v68, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v69 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v69, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v70 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u∑Pƒ±®Ï•˛®≠§@∞}µh∑°°A±µµ€≤¥´e§@∂¬°C");
            std::ostream::operator<<(v70, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v71 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v71, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v72 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶∫§F°C");
            std::ostream::operator<<(v72, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            deadend(a1);
          }
        }
        else if ( j > 2 )
        {
          if ( j == 3 && *a3 )
          {
            v73 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v73, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v74 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßAÆ≥∞_ø‡¨f∑Á¿…¶b®≠´e°C");
            std::ostream::operator<<(v74, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v75 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
            std::ostream::operator<<(v75, (int (*)(void))std::endl<char,std::char_traits<char>>);
            v76 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºw©“µo•X™∫•’•˙•¥¶bø‡¨f∑Á®≠§W°C");
            std::ostream::operator<<(v76, (int (*)(void))std::endl<char,std::char_traits<char>>);
            pass();
            v93 = 0;
          }
        }
        else if ( j == 1 )
        {
          v77 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v77, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v78 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶˘§‚©πø«§l§f≥U∏ìΩ߉πD®„°C");
          std::ostream::operator<<(v78, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v79 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v79, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v80 = std::operator<<<std::char_traits<char>>((int)&std::cout, "µ≤™GßAµo≤{ßA®√®S¶≥¨Ôø«§l°C");
          std::ostream::operator<<(v80, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v81 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v81, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v82 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•˙µ€ßæ™—™Ô±µ≥صœºw•¥πL®”™∫•’•˙°C");
          std::ostream::operator<<(v82, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v83 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v83, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v84 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u∑Pƒ±®Ï•˛®≠§@∞}µh∑°°A±µµ€≤¥´e§@∂¬°C");
          std::ostream::operator<<(v84, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          v85 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
          std::ostream::operator<<(v85, (int (*)(void))std::endl<char,std::char_traits<char>>);
          v86 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶∫§F°C");
          std::ostream::operator<<(v86, (int (*)(void))std::endl<char,std::char_traits<char>>);
          pass();
          deadend(a1);
        }
      }
      break;
    case 5:
      v87 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v87, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v88 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•ø≠n∞k∂]™∫Æ…≠‘°A´o≥Q•’•˙•¥§F≠”•øµ€°C");
      std::ostream::operator<<(v88, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v89 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v89, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v90 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA•u∑Pƒ±®Ï•˛®≠§@∞}µh∑°°A±µµ€≤¥´e§@∂¬°C");
      std::ostream::operator<<(v90, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      v91 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
      std::ostream::operator<<(v91, (int (*)(void))std::endl<char,std::char_traits<char>>);
      v92 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¶∫§F°C");
      std::ostream::operator<<(v92, (int (*)(void))std::endl<char,std::char_traits<char>>);
      pass();
      result = (int)deadend(a1);
      break;
    case 0:
      return result;
  }
  return result;
}
// 432710: using guessed type _DWORD __cdecl std::istream::operator>>(_DWORD, _DWORD);
// 4513C0: using guessed type _DWORD std::cout;
// 451460: using guessed type _DWORD std::cin;

//----- (00408264) --------------------------------------------------------
bool *__cdecl event10(bool *a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  int v12; // eax@1
  int v13; // eax@1
  int v14; // eax@1
  int v15; // eax@1
  int v16; // eax@1
  int v17; // eax@1
  int v18; // eax@1
  int v19; // eax@1
  int v20; // eax@1
  int v21; // eax@1
  int v22; // eax@1
  int v23; // eax@1
  int v24; // eax@1
  int v25; // eax@1
  int v26; // eax@1
  int v27; // eax@1
  int v28; // eax@1
  int v29; // eax@1
  int v30; // eax@1
  int v31; // eax@1
  int v32; // eax@1
  int v33; // eax@1
  int v34; // eax@1
  int v35; // eax@1
  int v36; // eax@1
  int v37; // eax@1
  int v38; // eax@1
  int v39; // eax@1
  int v40; // eax@1
  int v41; // eax@1
  int v42; // eax@1
  int v43; // eax@1
  int v44; // eax@1
  int v45; // eax@1
  int v46; // eax@1
  int v47; // eax@1
  int v48; // eax@1
  int v49; // eax@1
  int v50; // eax@1
  int v51; // eax@1
  int v52; // eax@1
  int v53; // eax@1
  int v54; // eax@1
  int v55; // eax@1
  int v56; // eax@1
  int v57; // eax@1
  int v58; // eax@1
  int v59; // eax@1
  int v60; // eax@1
  int v61; // eax@1
  int v62; // eax@1

  v1 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ø‡¨f∑Á∂}©lø±µ»§F∞_®”°A¨›§W•h¥Nπ≥¨O≥Q•RÆ§F§@ºÀ°C");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u∞⁄∞⁄∞⁄∞⁄∞⁄∞⁄°I°I°I°I°I°v");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºw¨µM§j¡n™∫©HºSµ€°A™Ì±°§Q§¿™∫µh≠W°C");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u´Á...´ÁªÚ∑|≥oºÀ....°v");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºw™∫™Ì±°ß·¶±µ€°A§@¡y§£Ø‡∏m´H™∫ºÀ§l°C");
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u≠Û≠Û≠Û≠Û....°v");
  std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¶—§Ú¨µM±q®´¥Y™∫•t§@∫›®´§FπL®”°C");
  std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v15 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥o§S¨O§∞ªÚß≈≥N°I°H");
  std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°ußA≤◊©Û¶€≠π¥c™G§Fßa...°v");
  std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¶—§Ú•÷Ø∫¶◊§£Ø∫™∫Ø∫µ€°A¨›µ€≥صœºwµh≠W™∫™Ì±°ª°°C");
  std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v22 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°uß⁄™æπDßA§w∏g∑Q≠n±˛ß⁄´‹§[§F...§£πL®S√ˆ´Y°A¶]¨∞ß⁄§]¨O°C°v");
  std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v23 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v24 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u•u§£πLß⁄™∫§O∂q®S¶≥ßA™∫±j§j...°v");
  std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v25 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v26 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u©“•H¨∞§F≥o§@πı°Aß⁄¿q¿q™∫§@™Ω≥£¶b∑«≥∆µ€...°v");
  std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v27 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v27, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v28 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¶—§Úª°µ€°Aß‚ßA§‚§W™∫ø‡¨f∑ÁÆ≥§FπL•h¬‡®Ï≠I≠±°C");
  std::ostream::operator<<(v28, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v29 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v29, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v30 = std::operator<<<std::char_traits<char>>((int)&std::cout, "Æ≥§M§l≠Â∂}°A∏Ã≠±≥∫µM¶≥§@≠”≥صœºw™∫∞gßA§Ω•J°C");
  std::ostream::operator<<(v30, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v31 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v31, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v32 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°u≥o≠”§H∞∏∑|±N∂A©GØuπÍ™∫§œ¿≥¶b•ª¥L®≠§W°A§]¥N¨O©“ø◊™∫ß≈¨r´Ω´Ω°C°v");
  std::ostream::operator<<(v32, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v33 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v33, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v34 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u§£πL´e¥£¨O≠n±µ¶¨®Ï•ª¥L¶€§v™∫≈]§O§~¶Ê...°v");
  std::ostream::operator<<(v34, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v35 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v35, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v36 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°u≤{¶b°Aß⁄§w∏gßi∂DßA≥oªÚ¶h§F°AßA•i•H¶w§fl§W∏Ù§F≠Û≠Û≠Û≠Û....°v");
  std::ostream::operator<<(v36, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v37 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v37, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v38 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u§£≠n™¸°Iß⁄¡Ÿ®Sµ•®ÏC++ Builder 7 ∞⁄∞⁄∞⁄∞⁄°I°I°I°I°v");
  std::ostream::operator<<(v38, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v39 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v39, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v40 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºw§j¡n™∫®Dƒ«µ€°A§£πL¶—§Ú≥s¨‹¿Y≥£®S¶≥ΩK§@§U°C");
  std::ostream::operator<<(v40, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v41 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v41, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v42 = std::operator<<<std::char_traits<char>>((int)&std::cout, "Æ≥∞_•fl•i•’¥N¥¬µ€§Ω•J™∫®{§l®Î§F§U•h°C");
  std::ostream::operator<<(v42, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v43 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v43, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v44 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u©B∞⁄∞⁄∞⁄∞⁄°I°I°I°I°v");
  std::ostream::operator<<(v44, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v45 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v45, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v46 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥صœºw®{§l≥Q≠•X§F§@≠”§j¨}°C");
  std::ostream::operator<<(v46, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v47 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v47, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v48 = std::operator<<<std::char_traits<char>>((int)&std::cout, "§j¨}¥≤•X§F®∏¥c™∫∂¬¶‚•˙®~°C");
  std::ostream::operator<<(v48, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v49 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v49, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v50 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA±q∑L±i™∫≤¥∑˙§§¨›®£≥صœºw≥Qßl§J™∫§@§˘µÍµL°C");
  std::ostream::operator<<(v50, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v51 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v51, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v52 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥o¨O´ÁºÀ™∫ƶ´Ë∞⁄...≥∫∑|≤`®Ï≥o∫ÿ¶a®B....");
  std::ostream::operator<<(v52, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v53 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v53, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v54 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u∞O¶Ì°AßA§∞ªÚ≥£®S¶≥¨›®Ï°A™æπD∂‹°H");
  std::ostream::operator<<(v54, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v55 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v55, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v56 = std::operator<<<std::char_traits<char>>((int)&std::cout, "¶—§Ú¶Â§b§≥§H§ß´·®ÃµM¨O®∫≠”Ø∫¡y°A¬‡¿YπÔßAª°µ€°C");
  std::ostream::operator<<(v56, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v57 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v57, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v58 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°u®S¶≥™∫™F¶Ë¥N¨O®S¶≥°AßA§∞ªÚ§]®S¶≥¨›®Ï°C°v");
  std::ostream::operator<<(v58, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v59 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v59, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v60 = std::operator<<<std::char_traits<char>>((int)&std::cout, "ßA¬I§F¬I¿Y°A¨›µ€¶—§Ú®∫•R∫°µ€Æ£©∆™∫≠Iºv®´ª∑°C");
  std::ostream::operator<<(v60, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v61 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v61, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v62 = std::operator<<<std::char_traits<char>>((int)&std::cout, "≥o§ß´·...¡Ÿ∑|¶≥§∞ªÚ∏{≠∑¶Â´B°A≤{¶b™∫ßA®√§£™æπD....");
  std::ostream::operator<<(v62, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  return theend(a1);
}
// 4513C0: using guessed type _DWORD std::cout;

//----- (00408BCA) --------------------------------------------------------
bool *__cdecl badend(bool *a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  int v12; // eax@1
  int v13; // eax@1
  int v14; // eax@1
  int v15; // eax@1
  int v16; // eax@1
  int v17; // eax@1
  int v18; // eax@1
  int v19; // eax@1
  int v20; // eax@1
  int v21; // eax@1
  bool *result; // eax@1

  v1 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°@°@°@°Ω°Ω°Ω°Ω°Ω°@°@°Ω°Ω°Ω°Ω°@°@");
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°@°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°Ω°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@");
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°@°@°Ω°@°@°@°@°@°Ω°@°Ω°Ω°Ω°Ω°@°@");
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@");
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@");
  std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°Ω°Ω°Ω°@°@");
  std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@");
  std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v15 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°Ω°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°Ω°@°@°Ω°@°@°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°@°@°@°Ω°@°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°@°@°@°@°Ω°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@");
  std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°Ω°Ω°Ω°@°@");
  std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  result = a1;
  *a1 = 0;
  return result;
}
// 4513C0: using guessed type _DWORD std::cout;

//----- (00408ED2) --------------------------------------------------------
bool *__cdecl deadend(bool *a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  int v12; // eax@1
  int v13; // eax@1
  int v14; // eax@1
  int v15; // eax@1
  int v16; // eax@1
  int v17; // eax@1
  int v18; // eax@1
  int v19; // eax@1
  int v20; // eax@1
  int v21; // eax@1
  bool *result; // eax@1

  v1 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°Ω°Ω°Ω°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°@°@°Ω°Ω°Ω°@°@°@°Ω°Ω°Ω°Ω°@°@");
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°@°@°@°@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v3 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°@°@°@°@°Ω°@°Ω°@°@°@°@°@°@°@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°@°@°@°@°Ω°@°Ω°@°@°@°@°@°@°@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v5 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°@°@°@°@°Ω°@°Ω°Ω°Ω°Ω°Ω°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°@°@°@°@°Ω°@°Ω°@°@°@°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v7 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°@°@°@°@°Ω°@°Ω°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°@°@°@°@°Ω°@°Ω°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v9 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@");
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°Ω°Ω°Ω°Ω°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°Ω°Ω°Ω°@°@");
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v11 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@");
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v12 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@");
  std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v13 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°Ω°Ω°Ω°@°@°@°@°@°@");
  std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v14 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@°@°@°@°@");
  std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v15 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°Ω°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v16 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@°Ω°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v17 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°Ω°@°@°Ω°@°@°Ω°@°Ω°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v18 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°@°@°@°Ω°@°Ω°@°Ω°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v19 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°@°@°@°@°Ω°Ω°@°Ω°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v20 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@°@°@°@°@");
  std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v21 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°Ω°Ω°Ω°@°@°@°@°@°@");
  std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  result = a1;
  *a1 = 0;
  return result;
}
// 4513C0: using guessed type _DWORD std::cout;

//----- (004091DA) --------------------------------------------------------
bool *__cdecl nomalend(bool *a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  int v12; // eax@1
  int v13; // eax@1
  int v14; // eax@1
  int v15; // eax@1
  int v16; // eax@1
  int v17; // eax@1
  int v18; // eax@1
  int v19; // eax@1
  int v20; // eax@1
  int v21; // eax@1
  int v22; // eax@1
  int v23; // eax@1
  int v24; // eax@1
  int v25; // eax@1
  int v26; // eax@1
  int v27; // eax@1
  int v28; // eax@1
  int v29; // eax@1
  int v30; // eax@1
  int v31; // eax@1
  bool *result; // eax@1

  v1 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°@°Ω°Ω°Ω°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@");
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v3 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°Ω°Ω°@°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v5 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°Ω°@°@°Ω°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°Ω°@°@°@°Ω°@°Ω°@°Ω°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v7 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°Ω°@°@°@°@°Ω°Ω°@°Ω°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v9 = std::operator<<<std::char_traits<char>>(
         (int)&std::cout,
         "°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°@°Ω°Ω°Ω°@°@°@°@°@°@°Ω°@°@°@°@");
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v12 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°Ω°Ω°Ω°@°@°@°@°@°Ω°Ω°Ω°@°@°@°@°@°Ω°Ω°Ω°@°@°@°Ω°Ω°Ω°Ω°@°@°@");
  std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v13 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°Ω°@°@°@°Ω°@°@°@°Ω°@°@°@°Ω°@  °@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@°@");
  std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v14 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω°@");
  std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v15 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω°@");
  std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v16 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω°@");
  std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v17 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°Ω°Ω°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω°@");
  std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v18 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°@°Ω°@°Ω°@°@°@°@°Ω°@");
  std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v19 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°Ω°@°@°@°Ω°@°@°@°Ω°@°@°@°Ω°@°@°@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@°@");
  std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v20 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°Ω°Ω°Ω°@°@°@°@°@°Ω°Ω°Ω°@°@°@°@°@°Ω°Ω°Ω°@°@°@°Ω°Ω°Ω°Ω°@°@°@");
  std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v22 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v23 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°Ω°Ω°Ω°@°@");
  std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v24 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@");
  std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v25 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω°Ω°@°@°@°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v26 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v27 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°@°Ω°@°@°Ω°@°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v27, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v28 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω°@°@°@°Ω°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v28, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v29 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°Ω°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v29, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v30 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@");
  std::ostream::operator<<(v30, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v31 = std::operator<<<std::char_traits<char>>(
          (int)&std::cout,
          "°@°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°Ω°Ω°Ω°@°@");
  std::ostream::operator<<(v31, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  result = a1;
  *a1 = 0;
  return result;
}
// 4513C0: using guessed type _DWORD std::cout;

//----- (0040964A) --------------------------------------------------------
bool *__cdecl theend(bool *a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v3; // eax@1
  int v4; // eax@1
  int v5; // eax@1
  int v6; // eax@1
  int v7; // eax@1
  int v8; // eax@1
  int v9; // eax@1
  int v10; // eax@1
  int v11; // eax@1
  int v12; // eax@1
  int v13; // eax@1
  int v14; // eax@1
  int v15; // eax@1
  int v16; // eax@1
  int v17; // eax@1
  int v18; // eax@1
  int v19; // eax@1
  int v20; // eax@1
  int v21; // eax@1
  int v22; // eax@1
  int v23; // eax@1
  int v24; // eax@1
  int v25; // eax@1
  int v26; // eax@1
  int v27; // eax@1
  int v28; // eax@1
  bool *result; // eax@1

  v1 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@°Ω°@°@°@°@°@°Ω°@°@°Ω°Ω°Ω°Ω°Ω°Ω");
  std::ostream::operator<<(v1, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v2 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°@°@");
  std::ostream::operator<<(v2, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v3 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°@°@");
  std::ostream::operator<<(v3, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v4 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°@°@");
  std::ostream::operator<<(v4, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v5 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°Ω°@°@°@°@°Ω°Ω°Ω°Ω°Ω°Ω°Ω°@°@°Ω°Ω°Ω°Ω°Ω°Ω");
  std::ostream::operator<<(v5, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v6 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°@°@");
  std::ostream::operator<<(v6, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v7 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°@°@");
  std::ostream::operator<<(v7, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v8 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°@°@");
  std::ostream::operator<<(v8, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v9 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°Ω°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°Ω°Ω°Ω°Ω°Ω");
  std::ostream::operator<<(v9, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v10 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@");
  std::ostream::operator<<(v10, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v11 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@°@");
  std::ostream::operator<<(v11, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v12 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°Ω°Ω°Ω°@°@");
  std::ostream::operator<<(v12, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v13 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@");
  std::ostream::operator<<(v13, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v14 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°Ω°@°@°@°@°@°@°@°Ω°Ω°@°@°@°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v14, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v15 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°Ω°@°@°@°@°@°@°@°Ω°@°Ω°@°@°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v15, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v16 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°@°Ω°@°@°Ω°@°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v16, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v17 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°Ω°@°@°@°@°@°@°@°Ω°@°@°@°Ω°@°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v17, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v18 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°Ω°Ω°@°@°Ω°@°@°@°@°Ω");
  std::ostream::operator<<(v18, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v19 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°Ω°@°@°@°@°@°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°@°@°@°Ω°@");
  std::ostream::operator<<(v19, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v20 = std::operator<<<std::char_traits<char>>((int)&std::cout, "°@°@°Ω°Ω°Ω°Ω°Ω°Ω°@°@°Ω°@°@°@°@°@°Ω°@°@°Ω°Ω°Ω°Ω°@°@");
  std::ostream::operator<<(v20, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v21 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v21, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v22 = std::operator<<<std::char_traits<char>>((int)&std::cout, "πC¿∏Ωsƒ∂≠˚°G¢≥¢∏¢∑≤≈ø≥¥º°]™¸≤≈°^");
  std::ostream::operator<<(v22, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v23 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v23, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v24 = std::operator<<<std::char_traits<char>>((int)&std::cout, "º@±°≥]≠p°G¢≥¢∏¢∑æG¥ºª®°]¶—¶¥°^");
  std::ostream::operator<<(v24, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v25 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v25, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v26 = std::operator<<<std::char_traits<char>>((int)&std::cout, "Æ•≥flßA´i™Ã°AßA§w∏gØ}√ˆ§F°I°I°I");
  std::ostream::operator<<(v26, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  v27 = std::operator<<<std::char_traits<char>>((int)&std::cout, byte_44A000);
  std::ostream::operator<<(v27, (int (*)(void))std::endl<char,std::char_traits<char>>);
  v28 = std::operator<<<std::char_traits<char>>((int)&std::cout, "THANK YOU FOR YOUR PLAYING!!");
  std::ostream::operator<<(v28, (int (*)(void))std::endl<char,std::char_traits<char>>);
  pass();
  result = a1;
  *a1 = 0;
  return result;
}
// 4513C0: using guessed type _DWORD std::cout;

//----- (00409A62) --------------------------------------------------------
int __cdecl __static_initialization_and_destruction_0(int a1, int a2)
{
  int result; // eax@3

  if ( a2 == 0xFFFF && a1 == 1 )
    result = std::ios_base::Init::Init((std::ios_base::Init *)&std::__ioinit);
  if ( a2 == 0xFFFF && !a1 )
    result = std::ios_base::Init::~Init((std::ios_base::Init *)&std::__ioinit);
  return result;
}

//----- (00409AA0) --------------------------------------------------------
int `global constructor keyed to'_main()
{
  return __static_initialization_and_destruction_0(1, 0xFFFF);
}

//----- (00409ABC) --------------------------------------------------------
int `global destructor keyed to'_main()
{
  return __static_initialization_and_destruction_0(0, 0xFFFF);
}

//----- (0040A4D0) --------------------------------------------------------
#error "40A519: call analysis failed (funcsize=58)"

//----- (00412680) --------------------------------------------------------
void __cdecl operator delete[](void *a1)
{
  operator delete(a1);
}

//----- (00415590) --------------------------------------------------------
void __cdecl _fpreset()
{
  __asm { fninit }
}

//----- (00419A30) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<char>::destroy()
{
  ;
}

//----- (00419C90) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<char>::__mt_alloc()
{
  ;
}

//----- (00419CA0) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<char>::__mt_alloc()
{
  ;
}

//----- (00419CB0) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<char>::__mt_alloc()
{
  ;
}

//----- (00419CC0) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<char>::__mt_alloc()
{
  ;
}

//----- (00419CD0) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<char>::~__mt_alloc()
{
  ;
}

//----- (00419CE0) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<char>::~__mt_alloc()
{
  ;
}

//----- (0041A3B0) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<wchar_t>::destroy()
{
  ;
}

//----- (0041A610) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<wchar_t>::__mt_alloc()
{
  ;
}

//----- (0041A620) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<wchar_t>::__mt_alloc()
{
  ;
}

//----- (0041A630) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<wchar_t>::__mt_alloc()
{
  ;
}

//----- (0041A640) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<wchar_t>::__mt_alloc()
{
  ;
}

//----- (0041A650) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<wchar_t>::~__mt_alloc()
{
  ;
}

//----- (0041A660) --------------------------------------------------------
void __gnu_cxx::__mt_alloc<wchar_t>::~__mt_alloc()
{
  ;
}

//----- (0041A790) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<char>::destroy()
{
  ;
}

//----- (0041A9E0) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<char>::__pool_alloc()
{
  ;
}

//----- (0041A9F0) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<char>::__pool_alloc()
{
  ;
}

//----- (0041AA00) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<char>::__pool_alloc()
{
  ;
}

//----- (0041AA10) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<char>::__pool_alloc()
{
  ;
}

//----- (0041AA20) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<char>::~__pool_alloc()
{
  ;
}

//----- (0041AA30) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<char>::~__pool_alloc()
{
  ;
}

//----- (0041AB60) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<wchar_t>::destroy()
{
  ;
}

//----- (0041ADF0) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<wchar_t>::__pool_alloc()
{
  ;
}

//----- (0041AE00) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<wchar_t>::__pool_alloc()
{
  ;
}

//----- (0041AE10) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<wchar_t>::__pool_alloc()
{
  ;
}

//----- (0041AE20) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<wchar_t>::__pool_alloc()
{
  ;
}

//----- (0041AE30) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<wchar_t>::~__pool_alloc()
{
  ;
}

//----- (0041AE40) --------------------------------------------------------
void __gnu_cxx::__pool_alloc<wchar_t>::~__pool_alloc()
{
  ;
}

//----- (0041BCC0) --------------------------------------------------------
int __cdecl __gnu_cxx::__mt_alloc<char>::address(int a1, int a2)
{
  return a2;
}

//----- (0041BCD0) --------------------------------------------------------
int __cdecl __gnu_cxx::__mt_alloc<char>::address(int a1, int a2)
{
  return a2;
}

//----- (0041BCE0) --------------------------------------------------------
signed int __gnu_cxx::__mt_alloc<char>::max_size()
{
  return -1;
}

//----- (0041BCF0) --------------------------------------------------------
int __cdecl __gnu_cxx::__mt_alloc<wchar_t>::address(int a1, int a2)
{
  return a2;
}

//----- (0041BD00) --------------------------------------------------------
int __cdecl __gnu_cxx::__mt_alloc<wchar_t>::address(int a1, int a2)
{
  return a2;
}

//----- (0041BD10) --------------------------------------------------------
signed int __gnu_cxx::__mt_alloc<wchar_t>::max_size()
{
  return 0x7FFFFFFF;
}

//----- (0041BD20) --------------------------------------------------------
int __cdecl __gnu_cxx::__pool_alloc<char>::address(int a1, int a2)
{
  return a2;
}

//----- (0041BD30) --------------------------------------------------------
int __cdecl __gnu_cxx::__pool_alloc<char>::address(int a1, int a2)
{
  return a2;
}

//----- (0041BD40) --------------------------------------------------------
signed int __gnu_cxx::__pool_alloc<char>::max_size()
{
  return -1;
}

//----- (0041BD50) --------------------------------------------------------
int __cdecl __gnu_cxx::__pool_alloc<wchar_t>::address(int a1, int a2)
{
  return a2;
}

//----- (0041BD60) --------------------------------------------------------
int __cdecl __gnu_cxx::__pool_alloc<wchar_t>::address(int a1, int a2)
{
  return a2;
}

//----- (0041BD70) --------------------------------------------------------
signed int __gnu_cxx::__pool_alloc<wchar_t>::max_size()
{
  return 0x7FFFFFFF;
}

//----- (0041BD80) --------------------------------------------------------
int __cdecl std::istream::gcount(std::istream *this)
{
  return *((_DWORD *)this + 1);
}

//----- (0041BD90) --------------------------------------------------------
int __cdecl std::istream::sentry::operator bool(int a1)
{
  return *(_BYTE *)a1;
}

//----- (0041BDA0) --------------------------------------------------------
int __cdecl std::ostream::sentry::operator bool(int a1)
{
  return *(_BYTE *)a1;
}

//----- (0041C220) --------------------------------------------------------
int __cdecl std::string::end(std::string *this)
{
  return *(_DWORD *)(*(_DWORD *)this - 12) + *(_DWORD *)this;
}

//----- (0041C2D0) --------------------------------------------------------
int __cdecl std::string::data(std::string *this)
{
  return *(_DWORD *)this;
}

//----- (0041C440) --------------------------------------------------------
int __cdecl std::string::size(std::string *this)
{
  return *(_DWORD *)(*(_DWORD *)this - 12);
}

//----- (0041C450) --------------------------------------------------------
int __cdecl std::string::begin(std::string *this)
{
  return *(_DWORD *)this;
}

//----- (0041C460) --------------------------------------------------------
int __cdecl std::string::c_str(std::string *this)
{
  return *(_DWORD *)this;
}

//----- (0041C5E0) --------------------------------------------------------
int __cdecl std::string::length(std::string *this)
{
  return *(_DWORD *)(*(_DWORD *)this - 12);
}

//----- (0041C670) --------------------------------------------------------
int __cdecl std::string::_M_data(std::string *this)
{
  return *(_DWORD *)this;
}

//----- (0041C680) --------------------------------------------------------
int __cdecl std::string::_M_iend(std::string *this)
{
  return *(_DWORD *)(*(_DWORD *)this - 12) + *(_DWORD *)this;
}

//----- (0041CA60) --------------------------------------------------------
int __cdecl std::string::_M_ibegin(std::string *this)
{
  return *(_DWORD *)this;
}

//----- (0041CB90) --------------------------------------------------------
int __cdecl std::moneypunct<char,false>::frac_digits(int a1)
{
  return (*(int (**)(void))(*(_DWORD *)a1 + 32))();
}

//----- (0041CBC0) --------------------------------------------------------
int __cdecl std::moneypunct<char,false>::do_neg_format(int a1)
{
  return *(_DWORD *)(*(_DWORD *)(a1 + 8) + 52);
}

//----- (0041CBD0) --------------------------------------------------------
int __cdecl std::moneypunct<char,false>::do_pos_format(int a1)
{
  return *(_DWORD *)(*(_DWORD *)(a1 + 8) + 48);
}

//----- (0041CD00) --------------------------------------------------------
int __cdecl std::moneypunct<char,false>::do_frac_digits(int a1)
{
  return *(_DWORD *)(*(_DWORD *)(a1 + 8) + 44);
}

//----- (0041CD10) --------------------------------------------------------
int __cdecl std::moneypunct<char,false>::do_decimal_point(int a1)
{
  return *(_BYTE *)(*(_DWORD *)(a1 + 8) + 17);
}

//----- (0041CE60) --------------------------------------------------------
int __cdecl std::moneypunct<char,false>::do_thousands_sep(int a1)
{
  return *(_BYTE *)(*(_DWORD *)(a1 + 8) + 18);
}

//----- (0041CFB0) --------------------------------------------------------
int __cdecl std::moneypunct<char,true>::frac_digits(int a1)
{
  return (*(int (**)(void))(*(_DWORD *)a1 + 32))();
}

//----- (0041CFE0) --------------------------------------------------------
int __cdecl std::moneypunct<char,true>::do_neg_format(int a1)
{
  return *(_DWORD *)(*(_DWORD *)(a1 + 8) + 52);
}

//----- (0041CFF0) --------------------------------------------------------
int __cdecl std::moneypunct<char,true>::do_pos_format(int a1)
{
  return *(_DWORD *)(*(_DWORD *)(a1 + 8) + 48);
}

//----- (0041D120) --------------------------------------------------------
int __cdecl std::moneypunct<char,true>::do_frac_digits(int a1)
{
  return *(_DWORD *)(*(_DWORD *)(a1 + 8) + 44);
}

//----- (0041D130) --------------------------------------------------------
int __cdecl std::moneypunct<char,true>::do_decimal_point(int a1)
{
  return *(_BYTE *)(*(_DWORD *)(a1 + 8) + 17);
}

//----- (0041D280) --------------------------------------------------------
int __cdecl std::moneypunct<char,true>::do_thousands_sep(int a1)
{
  return *(_BYTE *)(*(_DWORD *)(a1 + 8) + 18);
}

//----- (0041D2C0) --------------------------------------------------------
void std::__timepunct<char>::_M_am_pm_format()
{
  ;
}

//----- (0041D7D0) --------------------------------------------------------
int __cdecl std::basic_streambuf<char,std::char_traits<char>>::pbase(int a1)
{
  return *(_DWORD *)(a1 + 16);
}

//----- (0041D840) --------------------------------------------------------
int __cdecl std::ctype<char>::do_widen(int a1, char a2)
{
  return a2;
}

//----- (0041D880) --------------------------------------------------------
int __cdecl std::ctype<char>::do_narrow(int a1, char a2)
{
  return a2;
}

//----- (0041DD90) --------------------------------------------------------
int __cdecl std::collate<char>::compare(int a1)
{
  return (*(int (**)(void))(*(_DWORD *)a1 + 8))();
}

//----- (00426840) --------------------------------------------------------
int __cdecl std::messages<char>::open(int a1)
{
  return (*(int (**)(void))(*(_DWORD *)a1 + 8))();
}

//----- (00426850) --------------------------------------------------------
int __cdecl std::messages<char>::open(int a1)
{
  return (*(int (**)(void))(*(_DWORD *)a1 + 8))();
}

//----- (00426870) --------------------------------------------------------
int std::messages<char>::do_open()
{
  return 0;
}

//----- (00426880) --------------------------------------------------------
void std::messages<char>::do_close()
{
  ;
}

//----- (004271C0) --------------------------------------------------------
int std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::do_date_order()
{
  return 0;
}

//----- (00429A70) --------------------------------------------------------
int __cdecl std::basic_ios<char,std::char_traits<char>>::exceptions(int a1)
{
  return *(_DWORD *)(a1 + 16);
}

//----- (00429CD0) --------------------------------------------------------
int __cdecl std::basic_ios<char,std::char_traits<char>>::rdstate(int a1)
{
  return *(_DWORD *)(a1 + 20);
}

//----- (0042F250) --------------------------------------------------------
void std::allocator<char>::allocator()
{
  ;
}

//----- (0042F260) --------------------------------------------------------
void std::allocator<char>::allocator()
{
  ;
}

//----- (0042F270) --------------------------------------------------------
void std::allocator<char>::allocator()
{
  ;
}

//----- (0042F280) --------------------------------------------------------
void std::allocator<char>::allocator()
{
  ;
}

//----- (0042F290) --------------------------------------------------------
void std::allocator<char>::~allocator()
{
  ;
}

//----- (0042F2A0) --------------------------------------------------------
void std::allocator<char>::~allocator()
{
  ;
}

//----- (0042F2B0) --------------------------------------------------------
void std::allocator<wchar_t>::allocator()
{
  ;
}

//----- (0042F2C0) --------------------------------------------------------
void std::allocator<wchar_t>::allocator()
{
  ;
}

//----- (0042F2D0) --------------------------------------------------------
void std::allocator<wchar_t>::allocator()
{
  ;
}

//----- (0042F2E0) --------------------------------------------------------
void std::allocator<wchar_t>::allocator()
{
  ;
}

//----- (0042F2F0) --------------------------------------------------------
void std::allocator<wchar_t>::~allocator()
{
  ;
}

//----- (0042F300) --------------------------------------------------------
void std::allocator<wchar_t>::~allocator()
{
  ;
}

//----- (00431C20) --------------------------------------------------------
int __cdecl std::istream::operator>>(int a1, int (*a2)(void))
{
  return a2();
}

//----- (004345A0) --------------------------------------------------------
int __cdecl std::ostream::operator<<(int a1, int (*a2)(void))
{
  return a2();
}

//----- (00436180) --------------------------------------------------------
int __cdecl std::string::_Alloc_hider::_Alloc_hider(int a1, int a2)
{
  int result; // eax@1

  result = a1;
  *(_DWORD *)a1 = a2;
  return result;
}

//----- (00436190) --------------------------------------------------------
int __cdecl std::string::_Alloc_hider::_Alloc_hider(int a1, int a2)
{
  int result; // eax@1

  result = a1;
  *(_DWORD *)a1 = a2;
  return result;
}

//----- (004363F0) --------------------------------------------------------
_UNKNOWN *std::string::_S_empty_rep()
{
  return &std::string::_Rep::_S_empty_rep_storage;
}

//----- (00436810) --------------------------------------------------------
char *__cdecl std::string::_Rep::_M_refdata(std::string::_Rep *this)
{
  return (char *)this + 12;
}

//----- (00436820) --------------------------------------------------------
_UNKNOWN *std::string::_Rep::_S_empty_rep()
{
  return &std::string::_Rep::_S_empty_rep_storage;
}

//----- (00439640) --------------------------------------------------------
int __cdecl std::moneypunct<char,false>::moneypunct(int a1, int a2, int a3)
{
  int v3; // edx@1
  int v5; // [sp+0h] [bp-58h]@1
  int v6; // [sp+4h] [bp-54h]@1
  int v7; // [sp+8h] [bp-50h]@1
  int v8; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v10; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v11)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  int *v12; // [sp+34h] [bp-24h]@1
  int *v13; // [sp+38h] [bp-20h]@1
  int (*v14)(); // [sp+3Ch] [bp-1Ch]@1
  int *v15; // [sp+40h] [bp-18h]@1
  int v16; // [sp+4Ch] [bp-Ch]@1

  v15 = &v5;
  v13 = &v16;
  v8 = a1;
  v11 = __gxx_personality_sj0;
  v12 = &dword_448958;
  v14 = sub_4396D0;
  _Unwind_SjLj_Register(&TlsValue);
  v3 = v8;
  *(_DWORD *)(v8 + 4) = a3 != 0;
  *(_DWORD *)v3 = off_44FB70;
  *(_DWORD *)(v3 + 8) = a2;
  v7 = 0;
  v6 = 0;
  v10 = 1;
  std::moneypunct<char,false>::_M_initialize_moneypunct(v3);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 412D80: using guessed type _DWORD __cdecl std::moneypunct<char,false>::_M_initialize_moneypunct(_DWORD);
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 4396D0: using guessed type int sub_4396D0();
// 448958: using guessed type int dword_448958;
// 44FB70: using guessed type int (__cdecl *off_44FB70[4])(int);

//----- (004397C0) --------------------------------------------------------
int __cdecl std::moneypunct<char,false>::moneypunct(int a1, int a2)
{
  int v2; // edx@1
  int v4; // [sp+0h] [bp-58h]@1
  int v5; // [sp+4h] [bp-54h]@1
  int v6; // [sp+8h] [bp-50h]@1
  int v7; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v9; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v10)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  int *v11; // [sp+34h] [bp-24h]@1
  int *v12; // [sp+38h] [bp-20h]@1
  int (*v13)(); // [sp+3Ch] [bp-1Ch]@1
  int *v14; // [sp+40h] [bp-18h]@1
  int v15; // [sp+4Ch] [bp-Ch]@1

  v14 = &v4;
  v12 = &v15;
  v7 = a1;
  v10 = __gxx_personality_sj0;
  v11 = &dword_44894C;
  v13 = sub_439850;
  _Unwind_SjLj_Register(&TlsValue);
  v2 = v7;
  *(_DWORD *)(v7 + 4) = a2 != 0;
  *(_DWORD *)v2 = off_44FB70;
  *(_DWORD *)(v2 + 8) = 0;
  v6 = 0;
  v5 = 0;
  v9 = 1;
  std::moneypunct<char,false>::_M_initialize_moneypunct(v2);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 412D80: using guessed type _DWORD __cdecl std::moneypunct<char,false>::_M_initialize_moneypunct(_DWORD);
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 439850: using guessed type int sub_439850();
// 44894C: using guessed type int dword_44894C;
// 44FB70: using guessed type int (__cdecl *off_44FB70[4])(int);

//----- (00439880) --------------------------------------------------------
int __cdecl std::moneypunct<char,true>::moneypunct(int a1, int a2, int a3)
{
  int v3; // edx@1
  int v5; // [sp+0h] [bp-58h]@1
  int v6; // [sp+4h] [bp-54h]@1
  int v7; // [sp+8h] [bp-50h]@1
  int v8; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v10; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v11)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  __int16 *v12; // [sp+34h] [bp-24h]@1
  int *v13; // [sp+38h] [bp-20h]@1
  int (*v14)(); // [sp+3Ch] [bp-1Ch]@1
  int *v15; // [sp+40h] [bp-18h]@1
  int v16; // [sp+4Ch] [bp-Ch]@1

  v15 = &v5;
  v13 = &v16;
  v8 = a1;
  v11 = __gxx_personality_sj0;
  v12 = &word_448982;
  v14 = sub_439910;
  _Unwind_SjLj_Register(&TlsValue);
  v3 = v8;
  *(_DWORD *)(v8 + 4) = a3 != 0;
  *(_DWORD *)v3 = off_44FBB0;
  *(_DWORD *)(v3 + 8) = a2;
  v7 = 0;
  v6 = 0;
  v10 = 1;
  std::moneypunct<char,true>::_M_initialize_moneypunct(v3);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 412EA0: using guessed type _DWORD __cdecl std::moneypunct<char,true>::_M_initialize_moneypunct(_DWORD);
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 439910: using guessed type int sub_439910();
// 448982: using guessed type __int16 word_448982;
// 44FBB0: using guessed type int (__cdecl *off_44FBB0[4])(int);

//----- (00439A00) --------------------------------------------------------
int __cdecl std::moneypunct<char,true>::moneypunct(int a1, int a2)
{
  int v2; // edx@1
  int v4; // [sp+0h] [bp-58h]@1
  int v5; // [sp+4h] [bp-54h]@1
  int v6; // [sp+8h] [bp-50h]@1
  int v7; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v9; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v10)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  __int16 *v11; // [sp+34h] [bp-24h]@1
  int *v12; // [sp+38h] [bp-20h]@1
  int (*v13)(); // [sp+3Ch] [bp-1Ch]@1
  int *v14; // [sp+40h] [bp-18h]@1
  int v15; // [sp+4Ch] [bp-Ch]@1

  v14 = &v4;
  v12 = &v15;
  v7 = a1;
  v10 = __gxx_personality_sj0;
  v11 = &word_448976;
  v13 = sub_439A90;
  _Unwind_SjLj_Register(&TlsValue);
  v2 = v7;
  *(_DWORD *)(v7 + 4) = a2 != 0;
  *(_DWORD *)v2 = off_44FBB0;
  *(_DWORD *)(v2 + 8) = 0;
  v6 = 0;
  v5 = 0;
  v9 = 1;
  std::moneypunct<char,true>::_M_initialize_moneypunct(v2);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 412EA0: using guessed type _DWORD __cdecl std::moneypunct<char,true>::_M_initialize_moneypunct(_DWORD);
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 439A90: using guessed type int sub_439A90();
// 448976: using guessed type __int16 word_448976;
// 44FBB0: using guessed type int (__cdecl *off_44FBB0[4])(int);

//----- (00439D00) --------------------------------------------------------
int __cdecl std::__timepunct<char>::__timepunct(int a1, int a2, int a3)
{
  int v3; // edx@1
  int v4; // eax@1
  int v5; // edx@1
  std::locale::facet *v7; // [sp+0h] [bp-58h]@1
  int v8; // [sp+4h] [bp-54h]@1
  int v9; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v11; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v12)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  __int16 *v13; // [sp+34h] [bp-24h]@1
  int *v14; // [sp+38h] [bp-20h]@1
  int (*v15)(); // [sp+3Ch] [bp-1Ch]@1
  std::locale::facet **v16; // [sp+40h] [bp-18h]@1
  int v17; // [sp+4Ch] [bp-Ch]@1

  v16 = &v7;
  v14 = &v17;
  v9 = a1;
  v12 = __gxx_personality_sj0;
  v13 = &word_4489FA;
  v15 = sub_439D91;
  _Unwind_SjLj_Register(&TlsValue);
  v3 = v9;
  *(_DWORD *)(v9 + 4) = a3 != 0;
  *(_DWORD *)v3 = off_44FBF0;
  *(_DWORD *)(v3 + 8) = a2;
  v11 = 1;
  v4 = std::locale::facet::_S_get_c_name(v7);
  v5 = v9;
  *(_DWORD *)(v9 + 16) = v4;
  v8 = 0;
  std::__timepunct<char>::_M_initialize_timepunct(v5);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 415230: using guessed type _DWORD __cdecl std::__timepunct<char>::_M_initialize_timepunct(_DWORD);
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 439D91: using guessed type int sub_439D91();
// 4489FA: using guessed type __int16 word_4489FA;
// 44FBF0: using guessed type int (__cdecl *off_44FBF0[2])(int);

//----- (00439D91) --------------------------------------------------------
#error "439DA7: call analysis failed (funcsize=11)"

//----- (00439EB0) --------------------------------------------------------
int __cdecl std::__timepunct<char>::__timepunct(int a1, int a2)
{
  int v2; // edx@1
  int v3; // eax@1
  int v4; // edx@1
  std::locale::facet *v6; // [sp+0h] [bp-58h]@1
  int v7; // [sp+4h] [bp-54h]@1
  int v8; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v10; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v11)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  __int16 *v12; // [sp+34h] [bp-24h]@1
  int *v13; // [sp+38h] [bp-20h]@1
  int (*v14)(); // [sp+3Ch] [bp-1Ch]@1
  std::locale::facet **v15; // [sp+40h] [bp-18h]@1
  int v16; // [sp+4Ch] [bp-Ch]@1

  v15 = &v6;
  v13 = &v16;
  v8 = a1;
  v11 = __gxx_personality_sj0;
  v12 = &word_4489EE;
  v14 = sub_439F42;
  _Unwind_SjLj_Register(&TlsValue);
  v2 = v8;
  *(_DWORD *)(v8 + 4) = a2 != 0;
  *(_DWORD *)v2 = off_44FBF0;
  *(_DWORD *)(v2 + 8) = 0;
  v10 = 1;
  v3 = std::locale::facet::_S_get_c_name(v6);
  v4 = v8;
  *(_DWORD *)(v8 + 16) = v3;
  v7 = 0;
  std::__timepunct<char>::_M_initialize_timepunct(v4);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 415230: using guessed type _DWORD __cdecl std::__timepunct<char>::_M_initialize_timepunct(_DWORD);
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 439F42: using guessed type int sub_439F42();
// 4489EE: using guessed type __int16 word_4489EE;
// 44FBF0: using guessed type int (__cdecl *off_44FBF0[2])(int);

//----- (00439F42) --------------------------------------------------------
#error "439F58: call analysis failed (funcsize=11)"

//----- (00439F70) --------------------------------------------------------
int __cdecl std::__timepunct<char>::__timepunct(int a1, int a2, int a3)
{
  int v3; // edx@1
  int v4; // eax@1
  int v5; // edx@1
  std::locale::facet *v7; // [sp+0h] [bp-58h]@1
  int v8; // [sp+4h] [bp-54h]@1
  int v9; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v11; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v12)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  int *v13; // [sp+34h] [bp-24h]@1
  int *v14; // [sp+38h] [bp-20h]@1
  int (*v15)(); // [sp+3Ch] [bp-1Ch]@1
  std::locale::facet **v16; // [sp+40h] [bp-18h]@1
  int v17; // [sp+4Ch] [bp-Ch]@1

  v16 = &v7;
  v14 = &v17;
  v9 = a1;
  v12 = __gxx_personality_sj0;
  v13 = &dword_4489F4;
  v15 = sub_43A001;
  _Unwind_SjLj_Register(&TlsValue);
  v3 = v9;
  *(_DWORD *)(v9 + 4) = a3 != 0;
  *(_DWORD *)v3 = off_44FBF0;
  *(_DWORD *)(v3 + 8) = a2;
  v11 = 1;
  v4 = std::locale::facet::_S_get_c_name(v7);
  v5 = v9;
  *(_DWORD *)(v9 + 16) = v4;
  v8 = 0;
  std::__timepunct<char>::_M_initialize_timepunct(v5);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 415230: using guessed type _DWORD __cdecl std::__timepunct<char>::_M_initialize_timepunct(_DWORD);
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 43A001: using guessed type int sub_43A001();
// 4489F4: using guessed type int dword_4489F4;
// 44FBF0: using guessed type int (__cdecl *off_44FBF0[2])(int);

//----- (0043A001) --------------------------------------------------------
#error "43A017: call analysis failed (funcsize=11)"

//----- (0043A120) --------------------------------------------------------
int __cdecl std::__timepunct<char>::__timepunct(int a1, int a2)
{
  int v2; // edx@1
  int v3; // eax@1
  int v4; // edx@1
  std::locale::facet *v6; // [sp+0h] [bp-58h]@1
  int v7; // [sp+4h] [bp-54h]@1
  int v8; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v10; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v11)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  int *v12; // [sp+34h] [bp-24h]@1
  int *v13; // [sp+38h] [bp-20h]@1
  int (*v14)(); // [sp+3Ch] [bp-1Ch]@1
  std::locale::facet **v15; // [sp+40h] [bp-18h]@1
  int v16; // [sp+4Ch] [bp-Ch]@1

  v15 = &v6;
  v13 = &v16;
  v8 = a1;
  v11 = __gxx_personality_sj0;
  v12 = &dword_4489E8;
  v14 = sub_43A1B2;
  _Unwind_SjLj_Register(&TlsValue);
  v2 = v8;
  *(_DWORD *)(v8 + 4) = a2 != 0;
  *(_DWORD *)v2 = off_44FBF0;
  *(_DWORD *)(v2 + 8) = 0;
  v10 = 1;
  v3 = std::locale::facet::_S_get_c_name(v6);
  v4 = v8;
  *(_DWORD *)(v8 + 16) = v3;
  v7 = 0;
  std::__timepunct<char>::_M_initialize_timepunct(v4);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 415230: using guessed type _DWORD __cdecl std::__timepunct<char>::_M_initialize_timepunct(_DWORD);
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 43A1B2: using guessed type int sub_43A1B2();
// 4489E8: using guessed type int dword_4489E8;
// 44FBF0: using guessed type int (__cdecl *off_44FBF0[2])(int);

//----- (0043A1B2) --------------------------------------------------------
#error "43A1C8: call analysis failed (funcsize=11)"

//----- (0043A4F0) --------------------------------------------------------
int __cdecl std::range_error::~range_error(std::range_error *this)
{
  int v1; // ST00_4@1

  *(_DWORD *)this = off_44FC18;
  std::runtime_error::~runtime_error(this);
  operator delete((void *)this);
  return v1;
}
// 44FC18: using guessed type _DWORD (__cdecl *off_44FC18[3])(std::range_error *this);

//----- (0043A520) --------------------------------------------------------
int __cdecl std::range_error::~range_error(std::range_error *this)
{
  *(_DWORD *)this = off_44FC18;
  return std::runtime_error::~runtime_error(this);
}
// 44FC18: using guessed type _DWORD (__cdecl *off_44FC18[3])(std::range_error *this);

//----- (0043A540) --------------------------------------------------------
void __cdecl std::ctype_byname<char>::~ctype_byname(void *a1)
{
  *(_DWORD *)a1 = off_44FC30;
  std::ctype<char>::~ctype(a1);
  operator delete(a1);
}
// 411FD0: using guessed type _DWORD __cdecl std::ctype<char>::~ctype(_DWORD);
// 44FC30: using guessed type int (__cdecl *off_44FC30[2])(int);

//----- (0043A570) --------------------------------------------------------
int __cdecl std::ctype_byname<char>::~ctype_byname(int a1)
{
  *(_DWORD *)a1 = off_44FC30;
  return std::ctype<char>::~ctype(a1);
}
// 411FD0: using guessed type _DWORD __cdecl std::ctype<char>::~ctype(_DWORD);
// 44FC30: using guessed type int (__cdecl *off_44FC30[2])(int);

//----- (0043A590) --------------------------------------------------------
int __cdecl std::ctype_byname<char>::~ctype_byname(int a1)
{
  *(_DWORD *)a1 = off_44FC30;
  return std::ctype<char>::~ctype(a1);
}
// 411FD0: using guessed type _DWORD __cdecl std::ctype<char>::~ctype(_DWORD);
// 44FC30: using guessed type int (__cdecl *off_44FC30[2])(int);

//----- (0043A5B0) --------------------------------------------------------
void __cdecl std::domain_error::~domain_error(std::domain_error *this)
{
  *(_DWORD *)this = off_44FC70;
  std::logic_error::~logic_error(this);
  operator delete((void *)this);
}
// 44FC70: using guessed type _DWORD (__cdecl *off_44FC70[3])(std::domain_error *this);

//----- (0043A5E0) --------------------------------------------------------
int __cdecl std::domain_error::~domain_error(std::domain_error *this)
{
  *(_DWORD *)this = off_44FC70;
  return std::logic_error::~logic_error(this);
}
// 44FC70: using guessed type _DWORD (__cdecl *off_44FC70[3])(std::domain_error *this);

//----- (0043A600) --------------------------------------------------------
int __cdecl std::length_error::~length_error(std::length_error *this)
{
  int v1; // ST00_4@1

  *(_DWORD *)this = off_44FC88;
  std::logic_error::~logic_error(this);
  operator delete((void *)this);
  return v1;
}
// 44FC88: using guessed type _DWORD (__cdecl *off_44FC88[3])(std::length_error *this);

//----- (0043A630) --------------------------------------------------------
int __cdecl std::length_error::~length_error(std::length_error *this)
{
  *(_DWORD *)this = off_44FC88;
  return std::logic_error::~logic_error(this);
}
// 44FC88: using guessed type _DWORD (__cdecl *off_44FC88[3])(std::length_error *this);

//----- (0043A650) --------------------------------------------------------
int __cdecl std::out_of_range::~out_of_range(std::out_of_range *this)
{
  int v1; // ST00_4@1

  *(_DWORD *)this = off_44FCA0;
  std::logic_error::~logic_error(this);
  operator delete((void *)this);
  return v1;
}
// 44FCA0: using guessed type _DWORD (__cdecl *off_44FCA0[3])(std::out_of_range *this);

//----- (0043A680) --------------------------------------------------------
int __cdecl std::out_of_range::~out_of_range(std::out_of_range *this)
{
  *(_DWORD *)this = off_44FCA0;
  return std::logic_error::~logic_error(this);
}
// 44FCA0: using guessed type _DWORD (__cdecl *off_44FCA0[3])(std::out_of_range *this);

//----- (0043C930) --------------------------------------------------------
int __cdecl std::basic_filebuf<char,std::char_traits<char>>::~basic_filebuf(int a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v4; // [sp+0h] [bp-58h]@1
  int v5; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v7; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v8)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  char *v9; // [sp+34h] [bp-24h]@1
  int *v10; // [sp+38h] [bp-20h]@1
  int (*v11)(); // [sp+3Ch] [bp-1Ch]@1
  int *v12; // [sp+40h] [bp-18h]@1
  int v13; // [sp+4Ch] [bp-Ch]@1

  v12 = &v4;
  v5 = a1;
  v10 = &v13;
  v8 = __gxx_personality_sj0;
  v9 = &byte_448DFF;
  v11 = sub_43C9C0;
  _Unwind_SjLj_Register(&TlsValue);
  v1 = v5;
  *(_DWORD *)v5 = off_44FCD0;
  std::basic_filebuf<char,std::char_traits<char>>::close(v1);
  v7 = 1;
  std::__basic_file<char>::~__basic_file(v5 + 40);
  v2 = v5;
  *(_DWORD *)v5 = off_44FE60;
  std::locale::~locale((std::locale *)(v2 + 28));
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 413BB0: using guessed type int __cdecl std::__basic_file<char>::~__basic_file(_DWORD);
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 43ADC0: using guessed type _DWORD __cdecl std::basic_filebuf<char,std::char_traits<char>>::close(_DWORD);
// 43C9C0: using guessed type int sub_43C9C0();
// 448DFF: using guessed type char;
// 44FCD0: using guessed type int (__cdecl *off_44FCD0[2])(int);
// 44FE60: using guessed type int (__cdecl *off_44FE60[2])(int);

//----- (0043C9C0) --------------------------------------------------------
#error "43C9D8: call analysis failed (funcsize=12)"

//----- (0043C9F0) --------------------------------------------------------
int __cdecl std::basic_filebuf<char,std::char_traits<char>>::~basic_filebuf(int a1)
{
  int v1; // eax@1
  int v2; // eax@1
  int v4; // [sp+0h] [bp-58h]@1
  int v5; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v7; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v8)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  int v9; // [sp+34h] [bp-24h]@1
  int *v10; // [sp+38h] [bp-20h]@1
  int (*v11)(); // [sp+3Ch] [bp-1Ch]@1
  int *v12; // [sp+40h] [bp-18h]@1
  int v13; // [sp+4Ch] [bp-Ch]@1

  v12 = &v4;
  v5 = a1;
  v10 = &v13;
  v8 = __gxx_personality_sj0;
  v9 = (int)byte_448E05;
  v11 = sub_43CA80;
  _Unwind_SjLj_Register(&TlsValue);
  v1 = v5;
  *(_DWORD *)v5 = off_44FCD0;
  std::basic_filebuf<char,std::char_traits<char>>::close(v1);
  v7 = 1;
  std::__basic_file<char>::~__basic_file(v5 + 40);
  v2 = v5;
  *(_DWORD *)v5 = off_44FE60;
  std::locale::~locale((std::locale *)(v2 + 28));
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 413BB0: using guessed type int __cdecl std::__basic_file<char>::~__basic_file(_DWORD);
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 43ADC0: using guessed type _DWORD __cdecl std::basic_filebuf<char,std::char_traits<char>>::close(_DWORD);
// 43CA80: using guessed type int sub_43CA80();
// 44FCD0: using guessed type int (__cdecl *off_44FCD0[2])(int);
// 44FE60: using guessed type int (__cdecl *off_44FE60[2])(int);

//----- (0043CA80) --------------------------------------------------------
#error "43CA98: call analysis failed (funcsize=12)"

//----- (0043EF90) --------------------------------------------------------
void __cdecl std::codecvt_byname<char,char,int>::~codecvt_byname(void *a1)
{
  *(_DWORD *)a1 = off_44FDE8;
  std::codecvt<char,char,int>::~codecvt(a1);
  operator delete(a1);
}
// 412990: using guessed type _DWORD __cdecl std::codecvt<char,char,int>::~codecvt(_DWORD);
// 44FDE8: using guessed type int (__cdecl *off_44FDE8[2])(int);

//----- (0043EFC0) --------------------------------------------------------
int __cdecl std::codecvt_byname<char,char,int>::~codecvt_byname(int a1)
{
  *(_DWORD *)a1 = off_44FDE8;
  return std::codecvt<char,char,int>::~codecvt(a1);
}
// 412990: using guessed type _DWORD __cdecl std::codecvt<char,char,int>::~codecvt(_DWORD);
// 44FDE8: using guessed type int (__cdecl *off_44FDE8[2])(int);

//----- (0043EFE0) --------------------------------------------------------
int __cdecl std::codecvt_byname<char,char,int>::~codecvt_byname(int a1)
{
  *(_DWORD *)a1 = off_44FDE8;
  return std::codecvt<char,char,int>::~codecvt(a1);
}
// 412990: using guessed type _DWORD __cdecl std::codecvt<char,char,int>::~codecvt(_DWORD);
// 44FDE8: using guessed type int (__cdecl *off_44FDE8[2])(int);

//----- (0043F520) --------------------------------------------------------
int __cdecl std::overflow_error::~overflow_error(std::overflow_error *this)
{
  int v1; // ST00_4@1

  *(_DWORD *)this = off_44FE48;
  std::runtime_error::~runtime_error(this);
  operator delete((void *)this);
  return v1;
}
// 44FE48: using guessed type _DWORD (__cdecl *off_44FE48[3])(std::overflow_error *this);

//----- (0043F550) --------------------------------------------------------
int __cdecl std::overflow_error::~overflow_error(std::overflow_error *this)
{
  *(_DWORD *)this = off_44FE48;
  return std::runtime_error::~runtime_error(this);
}
// 44FE48: using guessed type _DWORD (__cdecl *off_44FE48[3])(std::overflow_error *this);

//----- (0043F650) --------------------------------------------------------
int std::basic_streambuf<char,std::char_traits<char>>::sync()
{
  return 0;
}

//----- (0043F680) --------------------------------------------------------
void std::basic_streambuf<char,std::char_traits<char>>::imbue()
{
  ;
}

//----- (0043F7A0) --------------------------------------------------------
int __cdecl std::basic_streambuf<char,std::char_traits<char>>::setbuf(int a1)
{
  return a1;
}

//----- (0043F9D0) --------------------------------------------------------
signed int std::basic_streambuf<char,std::char_traits<char>>::overflow()
{
  return -1;
}

//----- (0043FAC0) --------------------------------------------------------
signed int std::basic_streambuf<char,std::char_traits<char>>::pbackfail()
{
  return -1;
}

//----- (0043FAE0) --------------------------------------------------------
int std::basic_streambuf<char,std::char_traits<char>>::showmanyc()
{
  return 0;
}

//----- (0043FB40) --------------------------------------------------------
signed int std::basic_streambuf<char,std::char_traits<char>>::underflow()
{
  return -1;
}

//----- (0043FD00) --------------------------------------------------------
int __cdecl std::basic_streambuf<char,std::char_traits<char>>::operator=(int a1)
{
  return a1;
}

//----- (0043FF10) --------------------------------------------------------
void __cdecl std::messages_byname<char>::~messages_byname(void *a1)
{
  *(_DWORD *)a1 = off_44FEA0;
  std::messages<char>::~messages(a1);
  operator delete(a1);
}
// 443A80: using guessed type _DWORD __cdecl std::messages<char>::~messages(_DWORD);
// 44FEA0: using guessed type int (__cdecl *off_44FEA0[2])(int);

//----- (0043FF40) --------------------------------------------------------
int __cdecl std::messages_byname<char>::~messages_byname(int a1)
{
  *(_DWORD *)a1 = off_44FEA0;
  return std::messages<char>::~messages(a1);
}
// 443A80: using guessed type _DWORD __cdecl std::messages<char>::~messages(_DWORD);
// 44FEA0: using guessed type int (__cdecl *off_44FEA0[2])(int);

//----- (0043FF60) --------------------------------------------------------
int __cdecl std::messages_byname<char>::~messages_byname(int a1)
{
  *(_DWORD *)a1 = off_44FEA0;
  return std::messages<char>::~messages(a1);
}
// 443A80: using guessed type _DWORD __cdecl std::messages<char>::~messages(_DWORD);
// 44FEA0: using guessed type int (__cdecl *off_44FEA0[2])(int);

//----- (00440220) --------------------------------------------------------
void __cdecl std::numpunct_byname<char>::~numpunct_byname(void *a1)
{
  *(_DWORD *)a1 = off_44FEC0;
  std::numpunct<char>::~numpunct(a1);
  operator delete(a1);
}
// 413570: using guessed type _DWORD __cdecl std::numpunct<char>::~numpunct(_DWORD);
// 44FEC0: using guessed type int (__cdecl *off_44FEC0[4])(int);

//----- (00440250) --------------------------------------------------------
int __cdecl std::numpunct_byname<char>::~numpunct_byname(int a1)
{
  *(_DWORD *)a1 = off_44FEC0;
  return std::numpunct<char>::~numpunct(a1);
}
// 413570: using guessed type _DWORD __cdecl std::numpunct<char>::~numpunct(_DWORD);
// 44FEC0: using guessed type int (__cdecl *off_44FEC0[4])(int);

//----- (00440270) --------------------------------------------------------
int __cdecl std::numpunct_byname<char>::~numpunct_byname(int a1)
{
  *(_DWORD *)a1 = off_44FEC0;
  return std::numpunct<char>::~numpunct(a1);
}
// 413570: using guessed type _DWORD __cdecl std::numpunct<char>::~numpunct(_DWORD);
// 44FEC0: using guessed type int (__cdecl *off_44FEC0[4])(int);

//----- (004402D0) --------------------------------------------------------
void __cdecl std::time_get_byname<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get_byname(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450270;
  std::locale::facet::~facet(a1);
  operator delete((void *)a1);
}
// 450270: using guessed type int (__cdecl *off_450270[2])(std::locale::facet *);

//----- (00440300) --------------------------------------------------------
int __cdecl std::time_get_byname<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get_byname(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450270;
  return std::locale::facet::~facet(a1);
}
// 450270: using guessed type int (__cdecl *off_450270[2])(std::locale::facet *);

//----- (00440320) --------------------------------------------------------
int __cdecl std::time_get_byname<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get_byname(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450270;
  return std::locale::facet::~facet(a1);
}
// 450270: using guessed type int (__cdecl *off_450270[2])(std::locale::facet *);

//----- (00440380) --------------------------------------------------------
void __cdecl std::time_put_byname<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put_byname(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_4502B0;
  std::locale::facet::~facet(a1);
  operator delete((void *)a1);
}
// 4502B0: using guessed type int (__cdecl *off_4502B0[2])(std::locale::facet *);

//----- (004403B0) --------------------------------------------------------
int __cdecl std::time_put_byname<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put_byname(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_4502B0;
  return std::locale::facet::~facet(a1);
}
// 4502B0: using guessed type int (__cdecl *off_4502B0[2])(std::locale::facet *);

//----- (004403D0) --------------------------------------------------------
int __cdecl std::time_put_byname<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put_byname(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_4502B0;
  return std::locale::facet::~facet(a1);
}
// 4502B0: using guessed type int (__cdecl *off_4502B0[2])(std::locale::facet *);

//----- (004403F0) --------------------------------------------------------
int __cdecl std::underflow_error::~underflow_error(std::underflow_error *this)
{
  int v1; // ST00_4@1

  *(_DWORD *)this = off_44FF58;
  std::runtime_error::~runtime_error(this);
  operator delete((void *)this);
  return v1;
}
// 44FF58: using guessed type _DWORD (__cdecl *off_44FF58[3])(std::underflow_error *this);

//----- (00440420) --------------------------------------------------------
int __cdecl std::underflow_error::~underflow_error(std::underflow_error *this)
{
  *(_DWORD *)this = off_44FF58;
  return std::runtime_error::~runtime_error(this);
}
// 44FF58: using guessed type _DWORD (__cdecl *off_44FF58[3])(std::underflow_error *this);

//----- (00440DC0) --------------------------------------------------------
int __cdecl std::invalid_argument::~invalid_argument(std::invalid_argument *this)
{
  int v1; // ST00_4@1

  *(_DWORD *)this = off_44FF80;
  std::logic_error::~logic_error(this);
  operator delete((void *)this);
  return v1;
}
// 44FF80: using guessed type _DWORD (__cdecl *off_44FF80[3])(std::invalid_argument *this);

//----- (00440DF0) --------------------------------------------------------
int __cdecl std::invalid_argument::~invalid_argument(std::invalid_argument *this)
{
  *(_DWORD *)this = off_44FF80;
  return std::logic_error::~logic_error(this);
}
// 44FF80: using guessed type _DWORD (__cdecl *off_44FF80[3])(std::invalid_argument *this);

//----- (00441110) --------------------------------------------------------
void __cdecl std::__timepunct_cache<char>::~__timepunct_cache(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_44FF98;
  std::locale::facet::~facet(a1);
  operator delete((void *)a1);
}
// 44FF98: using guessed type int (__cdecl *off_44FF98[2])(std::locale::facet *);

//----- (00441140) --------------------------------------------------------
int __cdecl std::__timepunct_cache<char>::~__timepunct_cache(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_44FF98;
  return std::locale::facet::~facet(a1);
}
// 44FF98: using guessed type int (__cdecl *off_44FF98[2])(std::locale::facet *);

//----- (00441160) --------------------------------------------------------
int __cdecl std::__timepunct_cache<char>::~__timepunct_cache(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_44FF98;
  return std::locale::facet::~facet(a1);
}
// 44FF98: using guessed type int (__cdecl *off_44FF98[2])(std::locale::facet *);

//----- (00441420) --------------------------------------------------------
void __cdecl std::moneypunct_byname<char,false>::~moneypunct_byname(void *a1)
{
  *(_DWORD *)a1 = off_44FFA8;
  std::moneypunct<char,false>::~moneypunct(a1);
  operator delete(a1);
}
// 413210: using guessed type _DWORD __cdecl std::moneypunct<char,false>::~moneypunct(_DWORD);
// 44FFA8: using guessed type int (__cdecl *off_44FFA8[4])(int);

//----- (00441450) --------------------------------------------------------
int __cdecl std::moneypunct_byname<char,false>::~moneypunct_byname(int a1)
{
  *(_DWORD *)a1 = off_44FFA8;
  return std::moneypunct<char,false>::~moneypunct(a1);
}
// 413210: using guessed type _DWORD __cdecl std::moneypunct<char,false>::~moneypunct(_DWORD);
// 44FFA8: using guessed type int (__cdecl *off_44FFA8[4])(int);

//----- (00441470) --------------------------------------------------------
int __cdecl std::moneypunct_byname<char,false>::~moneypunct_byname(int a1)
{
  *(_DWORD *)a1 = off_44FFA8;
  return std::moneypunct<char,false>::~moneypunct(a1);
}
// 413210: using guessed type _DWORD __cdecl std::moneypunct<char,false>::~moneypunct(_DWORD);
// 44FFA8: using guessed type int (__cdecl *off_44FFA8[4])(int);

//----- (00441730) --------------------------------------------------------
void __cdecl std::moneypunct_byname<char,true>::~moneypunct_byname(void *a1)
{
  *(_DWORD *)a1 = off_44FFE8;
  std::moneypunct<char,true>::~moneypunct(a1);
  operator delete(a1);
}
// 412FC0: using guessed type _DWORD __cdecl std::moneypunct<char,true>::~moneypunct(_DWORD);
// 44FFE8: using guessed type int (__cdecl *off_44FFE8[4])(int);

//----- (00441760) --------------------------------------------------------
int __cdecl std::moneypunct_byname<char,true>::~moneypunct_byname(int a1)
{
  *(_DWORD *)a1 = off_44FFE8;
  return std::moneypunct<char,true>::~moneypunct(a1);
}
// 412FC0: using guessed type _DWORD __cdecl std::moneypunct<char,true>::~moneypunct(_DWORD);
// 44FFE8: using guessed type int (__cdecl *off_44FFE8[4])(int);

//----- (00441780) --------------------------------------------------------
int __cdecl std::moneypunct_byname<char,true>::~moneypunct_byname(int a1)
{
  *(_DWORD *)a1 = off_44FFE8;
  return std::moneypunct<char,true>::~moneypunct(a1);
}
// 412FC0: using guessed type _DWORD __cdecl std::moneypunct<char,true>::~moneypunct(_DWORD);
// 44FFE8: using guessed type int (__cdecl *off_44FFE8[4])(int);

//----- (00442B20) --------------------------------------------------------
void __cdecl std::__ctype_abstract_base<char>::~__ctype_abstract_base(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450048;
  std::locale::facet::~facet(a1);
  operator delete((void *)a1);
}
// 450048: using guessed type int (__cdecl *off_450048[2])(std::locale::facet *);

//----- (00442B50) --------------------------------------------------------
int __cdecl std::__ctype_abstract_base<char>::~__ctype_abstract_base(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450048;
  return std::locale::facet::~facet(a1);
}
// 450048: using guessed type int (__cdecl *off_450048[2])(std::locale::facet *);

//----- (00442B70) --------------------------------------------------------
void __cdecl std::__codecvt_abstract_base<char,char,int>::~__codecvt_abstract_base(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450088;
  std::locale::facet::~facet(a1);
  operator delete((void *)a1);
}
// 450088: using guessed type int (__cdecl *off_450088[2])(std::locale::facet *);

//----- (00442BA0) --------------------------------------------------------
int __cdecl std::__codecvt_abstract_base<char,char,int>::~__codecvt_abstract_base(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450088;
  return std::locale::facet::~facet(a1);
}
// 450088: using guessed type int (__cdecl *off_450088[2])(std::locale::facet *);

//----- (00443010) --------------------------------------------------------
int __cdecl std::collate<char>::collate(int a1, char a2, int a3)
{
  int v3; // edx@1
  int v5; // [sp+0h] [bp-58h]@1
  int **v6; // [sp+4h] [bp-54h]@1
  int v7; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v9; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v10)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  __int16 *v11; // [sp+34h] [bp-24h]@1
  int *v12; // [sp+38h] [bp-20h]@1
  int (*v13)(); // [sp+3Ch] [bp-1Ch]@1
  int *v14; // [sp+40h] [bp-18h]@1
  int v15; // [sp+4Ch] [bp-Ch]@1

  v14 = &v5;
  v12 = &v15;
  v7 = a1;
  v10 = __gxx_personality_sj0;
  v11 = &word_448A72;
  v13 = sub_443093;
  _Unwind_SjLj_Register(&TlsValue);
  v3 = v7;
  *(_DWORD *)(v7 + 4) = a3 != 0;
  *(_DWORD *)v3 = off_450148;
  v9 = 1;
  *(_DWORD *)(v7 + 8) = std::locale::facet::_S_clone_c_locale((std::locale::facet *)&a2, v6);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 443093: using guessed type int sub_443093();
// 448A72: using guessed type __int16 word_448A72;
// 450148: using guessed type int (__cdecl *off_450148[2])(int);

//----- (00443093) --------------------------------------------------------
#error "4430A9: call analysis failed (funcsize=11)"

//----- (00443170) --------------------------------------------------------
int __cdecl std::collate<char>::collate(int a1, char a2, int a3)
{
  int v3; // edx@1
  int v5; // [sp+0h] [bp-58h]@1
  int **v6; // [sp+4h] [bp-54h]@1
  int v7; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v9; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v10)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  int *v11; // [sp+34h] [bp-24h]@1
  int *v12; // [sp+38h] [bp-20h]@1
  int (*v13)(); // [sp+3Ch] [bp-1Ch]@1
  int *v14; // [sp+40h] [bp-18h]@1
  int v15; // [sp+4Ch] [bp-Ch]@1

  v14 = &v5;
  v12 = &v15;
  v7 = a1;
  v10 = __gxx_personality_sj0;
  v11 = &dword_448A6C;
  v13 = sub_4431F3;
  _Unwind_SjLj_Register(&TlsValue);
  v3 = v7;
  *(_DWORD *)(v7 + 4) = a3 != 0;
  *(_DWORD *)v3 = off_450148;
  v9 = 1;
  *(_DWORD *)(v7 + 8) = std::locale::facet::_S_clone_c_locale((std::locale::facet *)&a2, v6);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 4431F3: using guessed type int sub_4431F3();
// 448A6C: using guessed type int dword_448A6C;
// 450148: using guessed type int (__cdecl *off_450148[2])(int);

//----- (004431F3) --------------------------------------------------------
#error "443209: call analysis failed (funcsize=11)"

//----- (004432D0) --------------------------------------------------------
int __cdecl std::collate<char>::~collate(std::locale::facet *a1)
{
  std::locale::facet *v1; // eax@1
  int v3; // [sp+0h] [bp-58h]@1
  int **v4; // [sp+4h] [bp-54h]@1
  std::locale::facet *v5; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v7; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v8)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  int *v9; // [sp+34h] [bp-24h]@1
  int *v10; // [sp+38h] [bp-20h]@1
  int (*v11)(); // [sp+3Ch] [bp-1Ch]@1
  int *v12; // [sp+40h] [bp-18h]@1
  int v13; // [sp+4Ch] [bp-Ch]@1

  v12 = &v3;
  v5 = a1;
  v10 = &v13;
  v8 = __gxx_personality_sj0;
  v9 = &dword_448A84;
  v11 = sub_443360;
  _Unwind_SjLj_Register(&TlsValue);
  v1 = v5;
  *(_DWORD *)v5 = off_450148;
  v7 = 1;
  std::locale::facet::_S_destroy_c_locale((std::locale::facet *)((char *)v1 + 8), v4);
  v7 = -1;
  std::locale::facet::~facet(v5);
  operator delete((void *)v5);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 443360: using guessed type int sub_443360();
// 448A84: using guessed type int dword_448A84;
// 450148: using guessed type int (__cdecl *off_450148[2])(int);

//----- (00443530) --------------------------------------------------------
void __cdecl std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~num_get(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450168;
  std::locale::facet::~facet(a1);
  operator delete((void *)a1);
}
// 450168: using guessed type int (__cdecl *off_450168[2])(std::locale::facet *);

//----- (00443560) --------------------------------------------------------
int __cdecl std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~num_get(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450168;
  return std::locale::facet::~facet(a1);
}
// 450168: using guessed type int (__cdecl *off_450168[2])(std::locale::facet *);

//----- (00443580) --------------------------------------------------------
int __cdecl std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~num_get(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450168;
  return std::locale::facet::~facet(a1);
}
// 450168: using guessed type int (__cdecl *off_450168[2])(std::locale::facet *);

//----- (004435E0) --------------------------------------------------------
void __cdecl std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~num_put(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_4501A8;
  std::locale::facet::~facet(a1);
  operator delete((void *)a1);
}
// 4501A8: using guessed type int (__cdecl *off_4501A8[2])(std::locale::facet *);

//----- (00443610) --------------------------------------------------------
int __cdecl std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~num_put(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_4501A8;
  return std::locale::facet::~facet(a1);
}
// 4501A8: using guessed type int (__cdecl *off_4501A8[2])(std::locale::facet *);

//----- (00443630) --------------------------------------------------------
int __cdecl std::num_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~num_put(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_4501A8;
  return std::locale::facet::~facet(a1);
}
// 4501A8: using guessed type int (__cdecl *off_4501A8[2])(std::locale::facet *);

//----- (00443910) --------------------------------------------------------
int __cdecl std::messages<char>::~messages(std::locale::facet *a1)
{
  std::locale::facet *v1; // eax@1
  int v3; // [sp+0h] [bp-58h]@1
  int **v4; // [sp+4h] [bp-54h]@1
  std::locale::facet *v5; // [sp+14h] [bp-44h]@1
  char TlsValue; // [sp+18h] [bp-40h]@1
  int v7; // [sp+1Ch] [bp-3Ch]@1
  int (__cdecl *v8)(int, int, int, int, int, unsigned __int8 *); // [sp+30h] [bp-28h]@1
  __int16 *v9; // [sp+34h] [bp-24h]@1
  int *v10; // [sp+38h] [bp-20h]@1
  int (*v11)(); // [sp+3Ch] [bp-1Ch]@1
  int *v12; // [sp+40h] [bp-18h]@1
  int v13; // [sp+4Ch] [bp-Ch]@1

  v12 = &v3;
  v5 = a1;
  v10 = &v13;
  v8 = __gxx_personality_sj0;
  v9 = &word_448A42;
  v11 = sub_4439A0;
  _Unwind_SjLj_Register(&TlsValue);
  v1 = v5;
  *(_DWORD *)v5 = off_450210;
  v7 = 1;
  std::locale::facet::_S_destroy_c_locale((std::locale::facet *)((char *)v1 + 8), v4);
  v7 = -1;
  std::locale::facet::~facet(v5);
  operator delete((void *)v5);
  return _Unwind_SjLj_Unregister(&TlsValue);
}
// 415BF0: using guessed type _DWORD __cdecl _Unwind_SjLj_Unregister(_DWORD);
// 4439A0: using guessed type int sub_4439A0();
// 448A42: using guessed type __int16 word_448A42;
// 450210: using guessed type int (__cdecl *off_450210[2])(int);

//----- (00443FF0) --------------------------------------------------------
void __cdecl std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450270;
  std::locale::facet::~facet(a1);
  operator delete((void *)a1);
}
// 450270: using guessed type int (__cdecl *off_450270[2])(std::locale::facet *);

//----- (00444020) --------------------------------------------------------
int __cdecl std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450270;
  return std::locale::facet::~facet(a1);
}
// 450270: using guessed type int (__cdecl *off_450270[2])(std::locale::facet *);

//----- (00444040) --------------------------------------------------------
int __cdecl std::time_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~time_get(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450270;
  return std::locale::facet::~facet(a1);
}
// 450270: using guessed type int (__cdecl *off_450270[2])(std::locale::facet *);

//----- (004440A0) --------------------------------------------------------
void __cdecl std::time_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_4502B0;
  std::locale::facet::~facet(a1);
  operator delete((void *)a1);
}
// 4502B0: using guessed type int (__cdecl *off_4502B0[2])(std::locale::facet *);

//----- (004440D0) --------------------------------------------------------
int __cdecl std::time_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_4502B0;
  return std::locale::facet::~facet(a1);
}
// 4502B0: using guessed type int (__cdecl *off_4502B0[2])(std::locale::facet *);

//----- (004440F0) --------------------------------------------------------
int __cdecl std::time_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~time_put(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_4502B0;
  return std::locale::facet::~facet(a1);
}
// 4502B0: using guessed type int (__cdecl *off_4502B0[2])(std::locale::facet *);

//----- (00444AD0) --------------------------------------------------------
void __cdecl std::basic_ios<char,std::char_traits<char>>::~basic_ios(std::ios_base *a1)
{
  *(_DWORD *)a1 = off_4502E0;
  std::ios_base::~ios_base(a1);
  operator delete((void *)a1);
}
// 4502E0: using guessed type int (__cdecl *off_4502E0[2])(std::ios_base *);

//----- (00444B00) --------------------------------------------------------
int __cdecl std::basic_ios<char,std::char_traits<char>>::~basic_ios(std::ios_base *a1)
{
  *(_DWORD *)a1 = off_4502E0;
  return std::ios_base::~ios_base(a1);
}
// 4502E0: using guessed type int (__cdecl *off_4502E0[2])(std::ios_base *);

//----- (00444B20) --------------------------------------------------------
int __cdecl std::basic_ios<char,std::char_traits<char>>::~basic_ios(std::ios_base *a1)
{
  *(_DWORD *)a1 = off_4502E0;
  return std::ios_base::~ios_base(a1);
}
// 4502E0: using guessed type int (__cdecl *off_4502E0[2])(std::ios_base *);

//----- (00444B80) --------------------------------------------------------
void __cdecl std::money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~money_get(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450308;
  std::locale::facet::~facet(a1);
  operator delete((void *)a1);
}
// 450308: using guessed type int (__cdecl *off_450308[2])(std::locale::facet *);

//----- (00444BB0) --------------------------------------------------------
int __cdecl std::money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~money_get(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450308;
  return std::locale::facet::~facet(a1);
}
// 450308: using guessed type int (__cdecl *off_450308[2])(std::locale::facet *);

//----- (00444BD0) --------------------------------------------------------
int __cdecl std::money_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::~money_get(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450308;
  return std::locale::facet::~facet(a1);
}
// 450308: using guessed type int (__cdecl *off_450308[2])(std::locale::facet *);

//----- (00444C30) --------------------------------------------------------
void __cdecl std::money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~money_put(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450320;
  std::locale::facet::~facet(a1);
  operator delete((void *)a1);
}
// 450320: using guessed type int (__cdecl *off_450320[2])(std::locale::facet *);

//----- (00444C60) --------------------------------------------------------
int __cdecl std::money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~money_put(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450320;
  return std::locale::facet::~facet(a1);
}
// 450320: using guessed type int (__cdecl *off_450320[2])(std::locale::facet *);

//----- (00444C80) --------------------------------------------------------
int __cdecl std::money_put<char,std::ostreambuf_iterator<char,std::char_traits<char>>>::~money_put(std::locale::facet *a1)
{
  *(_DWORD *)a1 = off_450320;
  return std::locale::facet::~facet(a1);
}
// 450320: using guessed type int (__cdecl *off_450320[2])(std::locale::facet *);

//----- (004453F0) --------------------------------------------------------
int __cdecl std::min<unsigned int>(int a1, int a2)
{
  int v3; // [sp+0h] [bp-4h]@2

  if ( *(_DWORD *)a2 >= *(_DWORD *)a1 )
    v3 = a1;
  else
    v3 = a2;
  return v3;
}

//----- (00446638) --------------------------------------------------------
BOOL __cdecl std::operator==<char,std::char_traits<char>,std::allocator<char>>(std::string *a1, char *a2)
{
  return std::string::compare(a1, a2) == 0;
}

//----- (00446668) --------------------------------------------------------
int __cdecl std::operator<<<std::char_traits<char>>(int a1, char *a2)
{
  return std::operator<<<std::char_traits<char>>(a1, a2);
}

//----- (00446998) --------------------------------------------------------
int __cdecl std::operator<<<std::char_traits<char>>(int a1, char *a2)
{
  return std::operator<<<std::char_traits<char>>(a1, a2);
}

//----- (004469A8) --------------------------------------------------------
int __cdecl std::operator<<<std::char_traits<char>>(int a1, char a2)
{
  return std::operator<<<std::char_traits<char>>(a1, a2);
}
// 4469B8: using guessed type _DWORD __cdecl std::operator<<<std::char_traits<char>>(_DWORD, _DWORD);

//----- (00447408) --------------------------------------------------------
int __cdecl std::operator>><std::char_traits<char>>(int a1, int a2)
{
  return std::operator>><char,std::char_traits<char>>(a1, a2);
}
// 447448: using guessed type _DWORD __cdecl std::operator>><char,std::char_traits<char>>(_DWORD, _DWORD);

//----- (00447418) --------------------------------------------------------
int __cdecl std::operator>><std::char_traits<char>>(int a1, int a2)
{
  return std::operator>><char,std::char_traits<char>>(a1, a2);
}
// 447448: using guessed type _DWORD __cdecl std::operator>><char,std::char_traits<char>>(_DWORD, _DWORD);

//----- (00447428) --------------------------------------------------------
int __cdecl std::operator>><std::char_traits<char>>(int a1, int a2)
{
  return std::operator>><char,std::char_traits<char>>(a1, a2);
}
// 447728: using guessed type _DWORD __cdecl std::operator>><char,std::char_traits<char>>(_DWORD, _DWORD);

//----- (00447438) --------------------------------------------------------
int __cdecl std::operator>><std::char_traits<char>>(int a1, int a2)
{
  return std::operator>><char,std::char_traits<char>>(a1, a2);
}
// 447728: using guessed type _DWORD __cdecl std::operator>><char,std::char_traits<char>>(_DWORD, _DWORD);

#error "There were 9 decompilation failure(s) on 227 function(s)"

Modules

A piece of program that specifies which other pieces it relies on and which functionality it provides for other modules to use.

Packages

A chunk of code that can be distributed (copied and installed). It may contain one or more modules and has information about which other packages it depends on.

Type of Module System

CommonJS

  • Implemented by Node.JS, used for the server side
  • import : "require"
  • export: "module.exports"
// log.js
function log(){
    console.log('Example of CommonJS module system');
}

module.exports = { log };
// index.js
var logger = require('./log');
logger.log();

AMD

  • Implemented by RequireJS, used for the client side (browser)
  • import : "require"
// log.js
// syntax: define(id?, dependencies?, factory);
// id 是module名稱,可省略,否則必須是相對路徑,無需副檔名
define(['log'], function(){
    return {
        log: function(){
            console.log('Example of AMD module system');
        }
    }
});
// index.js
require(['log'], function(logger){
    logger.log();
});

ECMAScript

  • Used for both server/client side
  • import : "import"
  • export : "export"
  • When you import, you get back bindings value (actual value)
// log.js
const log = () => {
    console.log('Example of ES module system');
}

export default log;
// index.js
import log from './log';
log();
// package.json
{
    "type": "module"
}

Example

MDN - Basic Module

// canvas.mjs
function create(id, parent, width, height) {
  let divWrapper = document.createElement('div');
  let canvasElem = document.createElement('canvas');
  parent.appendChild(divWrapper);
  divWrapper.appendChild(canvasElem);

  divWrapper.id = id;
  canvasElem.width = width;
  canvasElem.height = height;

  let ctx = canvasElem.getContext('2d');

  return {
    ctx: ctx,
    id: id
  };
}

function createReportList(wrapperId) {
  let list = document.createElement('ul');
  list.id = wrapperId + '-reporter';

  let canvasWrapper = document.getElementById(wrapperId);
  canvasWrapper.appendChild(list);

  return list.id;
}

export { create, createReportList };
// square.mjs
const name = 'square';

function draw(ctx, length, x, y, color) {
  ctx.fillStyle = color;
  ctx.fillRect(x, y, length, length);

  return {
    length: length,
    x: x,
    y: y,
    color: color
  };
}

function random(min, max) {
   let num = Math.floor(Math.random() * (max - min)) + min;
   return num;
}

function reportArea(length, listId) {
  let listItem = document.createElement('li');
  listItem.textContent = `${name} area is ${length * length}px squared.`

  let list = document.getElementById(listId);
  list.appendChild(listItem);
}

function reportPerimeter(length, listId) {
  let listItem = document.createElement('li');
  listItem.textContent = `${name} perimeter is ${length * 4}px.`

  let list = document.getElementById(listId);
  list.appendChild(listItem);
}

function randomSquare(ctx) {
  let color1 = random(0, 255);
  let color2 = random(0, 255);
  let color3 = random(0, 255);
  let color = `rgb(${color1},${color2},${color3})`
  ctx.fillStyle = color;

  let x = random(0, 480);
  let y = random(0, 320);
  let length = random(10, 100);
  ctx.fillRect(x, y, length, length);

  return {
    length: length,
    x: x,
    y: y,
    color: color
  };
}

export { name, draw, reportArea, reportPerimeter };
export default randomSquare;
// main.mjs
import { create, createReportList } from './modules/canvas.mjs';
import { name, draw, reportArea, reportPerimeter } from './modules/square.mjs';
import randomSquare from './modules/square.mjs';

let myCanvas = create('myCanvas', document.body, 480, 320);
let reportList = createReportList(myCanvas.id);

let square1 = draw(myCanvas.ctx, 50, 50, 100, 'blue');
reportArea(square1.length, reportList);
reportPerimeter(square1.length, reportList);

// Use the default
let square2 = randomSquare(myCanvas.ctx);
<!-- index.html -->
<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <title>Basic JavaScript module example</title>
    <style>
      canvas {
        border: 1px solid black;
      }
    </style>
    <script type="module" src="main.mjs"></script>
  </head>
  <body>

  </body>
</html>

LAB

Modulize Authentication

     Please write a modulize authenticated system using commonJS, with the file's name "auth.js".

Functions:

  • "userAdd" - Add user, use array to store the data
    • params: username, account, password
  • "authenticate" - Check the account and the password
    • params: account, password
  • "passMod" - Modify the password
    • params: account, original password, new password
  • "getData" - Show up the user's data
    • params: username

     Using the following code to check whether your module is right or not.

var login = require('./auth');
login.userAdd("yoru", "yoyoyo", "hehehe");
login.authenticate("yoyoyo", "ehe");
// -> return "Wrong Password"
login.authenticate("yoyo", "hehehe");
// -> return "Unknown Account"
login.authenticate("yoyoyo", "hehehe");
// -> return "Login Success"
login.passMod("yoyoyo", "ehe", "hehe");
// -> return "Wrong Password"
login.passMod("yoyoyo", "hehehe", "ohoho");
// -> return "Password Changed"
login.getData("yoru");
// -> return as following
// -> name: yoru
// -> account: yoyoyo
// -> password: ohoho

Thanks For Listening

JavaScript: Modules

By Иo1lz

JavaScript: Modules

  • 160