Function at 0x401612
Capabilities:
Execute command

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x11c
and esp, 0xfffffff0
mov eax, 0
add eax, 0xf
add eax, 0xf
shr eax, 4
shl eax, 4
mov dword [ebp - 0x10c], eax
mov eax, dword [ebp - 0x10c]
call fcn.0040e7d0
mov dword [ebp - 0xb4], sym.___gxx_personality_sj0
mov dword [ebp - 0xb0], 0x440430
lea eax, [ebp - 0xac]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x401a79
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0xcc]
mov dword [esp], eax
call sym.__Unwind_SjLj_Register
call sym.___main
mov dword [esp], str.color_4F
mov dword [ebp - 0xc8], 0xffffffff
call sym._system
lea eax, [ebp - 0x38]
mov dword [esp], eax
call fcn.00430ef0
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov dword [ebp - 0xc8], 7
call fcn.00430ef0
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xc8], 6
call fcn.00430ef0
mov dword [esp + 4], 0x443040
mov dword [esp], 0x4463c0
mov dword [ebp - 0xc8], 5
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
call sym._getch
mov byte [ebp - 0x19], al
cmp byte [ebp - 0x19], 0xd
je 0x40172a
movsx eax, byte [ebp - 0x19]
mov dword [esp + 4], eax
lea eax, [ebp - 0x38]
mov dword [esp], eax
mov dword [ebp - 0xc8], 5
call method.std::string.operator_char_
mov dword [esp], 0x2a
call sym._putchar
call sym._getch
mov byte [ebp - 0x19], al
jmp 0x4016f1
mov dword [esp], 0
call sym._time
mov dword [esp], eax
call sym._srand
lea eax, [ebp - 0x38]
mov dword [esp + 4], eax
mov dword [esp], 0x4463c0
mov dword [ebp - 0xc8], 5
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std.allocator_char____std::basic_ostream_char__std::char_traits_char_____std::basic_string_char__std::char_traits_char___std::allocator_char____const
mov dword [esp + 4], 0x443058
mov dword [esp], eax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea eax, [ebp - 0x5c]
mov dword [esp + 4], eax
mov dword [esp], 0x446460
call method.std::istream.operator___int_
mov dword [ebp - 0x64], 1
lea eax, [ebp - 0x38]
mov dword [esp + 4], eax
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov dword [ebp - 0xc8], 5
call fcn.0043f358
test al, al
je 0x401bfa
mov dword [esp + 4], 0x44308e
mov dword [esp], 0x4463c0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov edx, eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 4], eax
mov dword [esp], edx
call method.std::ostream.operator___int_
mov dword [esp + 4], 0x44309c
mov dword [esp], eax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
call sym._getch
call sym._rand
mov edx, eax
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x10c], ecx
mov eax, edx
mov ecx, dword [ebp - 0x10c]
cdq
idiv dword [ecx]
lea eax, [edx + 1]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x6c], eax
mov dword [esp + 4], 0x4430a8
mov dword [esp], 0x4463c0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov edx, eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 4], eax
mov dword [esp], edx
call method.std::ostream.operator___int_
mov dword [esp + 4], 0x4430ab
mov dword [esp], eax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov edx, eax
mov eax, dword [ebp - 0x68]
mov dword [esp + 4], eax
mov dword [esp], edx
call method.std::ostream.operator___int_
mov dword [esp + 4], 0x4430c1
mov dword [esp], eax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
cmp dword [ebp - 0x68], 0
jle 0x4019ea
lea eax, [ebp - 0x88]
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0x38]
mov dword [esp + 4], eax
lea eax, [ebp - 0x98]
mov dword [esp], eax
mov dword [ebp - 0xc8], 5
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_std::string_const_
lea edx, [ebp - 0x98]
mov eax, dword [ebp - 0x68]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov edx, dword [ebp - 0xd4]
mov dword [esp], edx
mov dword [ebp - 0xc8], 4
call sym.gu_std::string__int_
sub esp, 4
jmp 0x4018f8
lea eax, [ebp - 0x98]
mov dword [esp], eax
mov dword [ebp - 0xc8], 5
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
lea eax, [ebp - 0x88]
mov dword [esp + 4], eax
mov dword [esp], 0x446320
mov dword [ebp - 0xc8], 3
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std.allocator_char____std::basic_ostream_char__std::char_traits_char_____std::basic_string_char__std::char_traits_char___std::allocator_char____const
mov dword [esp + 4], 0x443034
lea eax, [ebp - 0x88]
mov dword [esp], eax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x4019c8
mov dword [esp + 4], 0x4430d0
mov dword [esp], 0x446320
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov dword [esp], str.pause
call sym._system
mov dword [esp], 0x443126
call sym._system
lea eax, [ebp - 0x88]
mov dword [esp], eax
mov dword [ebp - 0xc8], 5
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x4016cb
lea eax, [ebp - 0x88]
mov dword [esp], eax
mov dword [ebp - 0xc8], 5
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
lea eax, [ebp - 0x68]
dec dword [eax]
jmp 0x401860
mov eax, dword [ebp - 0x6c]
inc eax
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x5c]
jg 0x401b82
lea eax, [ebp - 0x98]
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x38]
mov dword [esp + 4], eax
lea eax, [ebp - 0x88]
mov dword [esp], eax
mov dword [ebp - 0xc8], 5
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_std::string_const_
lea edx, [ebp - 0x88]
mov eax, dword [ebp - 0x68]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov edx, dword [ebp - 0xe4]
mov dword [esp], edx
mov dword [ebp - 0xc8], 2
call sym.gu_std::string__int_
sub esp, 4
lea eax, [ebp - 0x98]
mov dword [esp + 4], eax
mov dword [esp], 0x446320
mov dword [ebp - 0xc8], 1
call method.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std.allocator_char____std::basic_ostream_char__std::char_traits_char_____std::basic_string_char__std::char_traits_char___std::allocator_char____const
jmp 0x401b14
lea eax, [ebp - 0x98]
mov dword [esp], eax
mov dword [ebp - 0xc8], 2
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x401b60
lea eax, [ebp - 0x88]
mov dword [esp], eax
mov dword [ebp - 0xc8], 5
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
lea eax, [ebp - 0x68]
inc dword [eax]
jmp 0x4019f1
lea eax, [ebp - 0x64]
inc dword [eax]
mov dword [esp + 4], 0x44312c
mov dword [esp], 0x4463c0
mov dword [ebp - 0xc8], 5
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov edx, eax
mov eax, dword [ebp - 0x64]
mov dword [esp + 4], eax
mov dword [esp], edx
call method.std::ostream.operator___int_
mov dword [esp + 4], 0x44314c
mov dword [esp], eax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
jmp 0x401785
lea eax, [ebp - 0x58]
mov dword [esp], eax
mov dword [ebp - 0xc8], 6
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x401c40
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov dword [ebp - 0xc8], 7
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x401c9c
lea eax, [ebp - 0x38]
mov dword [esp], eax
mov dword [ebp - 0xc8], 0xffffffff
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
mov dword [ebp - 0xd0], 0
lea eax, [ebp - 0xcc]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
mov eax, dword [ebp - 0xd0]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret