Function at 0x401ae0
Capabilities:
Execute command
Manipulate console buffer
Set console window title

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
push edi
push str.BSTU_Exam_Master
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleW]
push 0x4e3
call dword [sym.imp.KERNEL32.dll_SetConsoleCP]
push 0x4e3
call dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x406460
call fcn.00401570
mov esi, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
mov edi, dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
nop dword [eax]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x4064c0
call fcn.00401570
mov edx, 0x4064b4
mov ecx, eax
call fcn.00401570
mov edx, 0x4064a8
mov ecx, eax
call fcn.00401570
mov edx, str.3__
mov ecx, eax
call fcn.00401570
mov edx, str.4__
mov ecx, eax
call fcn.00401570
mov edx, 0x406484
mov ecx, eax
call fcn.00401570
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea edx, [esp + 0x11]
call fcn.004019c0
mov edx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
push 0
push 0
mov eax, dword [edx]
mov ecx, dword [eax + 4]
add ecx, edx
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
push 0xa
push 0
push 0x7fff
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::ignore_long_long___int64___int_]
mov bl, byte [esp + 0x11]
add bl, 0xd0
push 0x406298
mov byte [esp + 0x15], bl
call esi
movsx eax, bl
add esp, 4
cmp eax, 4
ja case.default.0x401bd8
jmp dword [eax*4 + 0x401e2c]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x406510
call fcn.00401570
mov edx, str.1__
mov ecx, eax
call fcn.00401570
mov edx, str.2__
mov ecx, eax
call fcn.00401570
mov edx, str.0__
mov ecx, eax
call fcn.00401570
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea edx, [esp + 0x12]
call fcn.004019c0
mov edx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
push 0
push 0
mov eax, dword [edx]
mov ecx, dword [eax + 4]
add ecx, edx
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
push 0xa
push 0
push 0x7fff
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::ignore_long_long___int64___int_]
mov bh, byte [esp + 0x12]
add bh, 0xd0
movsx eax, bh
mov byte [esp + 0x12], bh
sub eax, 0
je 0x401da7
sub eax, 1
je 0x401ca2
sub eax, 1
je 0x401c98
push 0x401ab0
push ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x406524
call fcn.00401570
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
call edi
jmp 0x401da7
call fcn.00401010
jmp 0x401da7
push 0
call dword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
add esp, 4
push eax
call dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
add esp, 4
push 0x406298
call esi
add esp, 4
mov dword [esp + 0x14], 0x1c0001
push dword [esp + 0x14]
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x40660c
call fcn.00401570
call edi
cmp eax, 0x1b
je 0x401d9d
push 0x406298
call esi
add esp, 4
call fcn.00401e40
mov edx, 0x4063ec
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00401570
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
lea edx, [esp + 0x13]
call fcn.004019c0
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_bool___thiscall_std::ios_base::operator__void_const]
test al, al
jne 0x401d4e
mov bl, byte [esp + 0x13]
cmp bl, 0x79
je 0x401d81
cmp bl, 0x59
je 0x401d81
cmp bl, 0x6e
je 0x401d81
cmp bl, 0x4e
je 0x401d81
mov edx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
push 0
push 0
mov eax, dword [edx]
mov ecx, dword [eax + 4]
add ecx, edx
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_istream_char__struct_std::char_traits_char___std::cin]
push 0xa
push 0
push 0x7fff
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::ignore_long_long___int64___int_]
mov edx, 0x406414
jmp 0x401d0b
push 0x406298
call esi
add esp, 4
cmp bl, 0x79
je 0x401d01
cmp bl, 0x59
je 0x401d01
push 0x406298
call esi
add esp, 4
push 0x406298
call esi
add esp, 4
test bh, bh
jne case.0x401bd8.207
mov bl, byte [esp + 0x11]
jmp case.0x401bd8.208
push 0x406298
call esi
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
add esp, 4
mov edx, 0x406560
call fcn.00401570
call edi
push 0x406298
call esi
add esp, 4
jmp case.0x401bd8.208
push 0x401ab0
push ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x4065b4
call fcn.00401570
add esp, 4
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
call edi
test bl, bl
jne 0x401b30
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x4065ec
call fcn.00401570
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret