Function at 0x401de0
Capabilities:
Execute command
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x368
and esp, 0xfffffff0
mov eax, 0
add eax, 0xf
add eax, 0xf
shr eax, 4
shl eax, 4
mov dword [ebp - 0x34c], eax
mov eax, dword [ebp - 0x34c]
call fcn.0040df30
call sym.___main
mov dword [esp], 0
call sym._time
mov dword [esp], eax
call sym._srand
lea eax, [ebp - 0x198]
mov dword [esp], eax
call sym.initial_int_____10__
lea eax, [ebp - 0x328]
mov dword [esp], eax
call sym.initial_int_____10__
lea eax, [ebp - 0x198]
mov dword [esp], eax
call sym.make_int_____10__
lea eax, [ebp - 0x328]
mov dword [esp], eax
call sym.printH_int_____10__
mov dword [ebp - 0x32c], 0
cmp dword [ebp - 0x32c], 9
jg 0x401ed8
mov dword [ebp - 0x330], 0
cmp dword [ebp - 0x330], 9
jg 0x401ece
mov edx, dword [ebp - 0x32c]
mov eax, edx
shl eax, 2
add eax, edx
add eax, eax
add eax, dword [ebp - 0x330]
cmp dword [ebp + eax*4 - 0x198], 0xffffffff
jne 0x401ec4
mov edx, dword [ebp - 0x32c]
mov eax, edx
shl eax, 2
add eax, edx
add eax, eax
add eax, dword [ebp - 0x330]
mov dword [ebp + eax*4 - 0x328], 0xffffffff
lea eax, [ebp - 0x330]
inc dword [eax]
jmp 0x401e7c
lea eax, [ebp - 0x32c]
inc dword [eax]
jmp 0x401e69
lea eax, [ebp - 0x198]
mov dword [esp], eax
call sym.check_int_____10__
mov dword [esp + 4], method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov dword [esp], 0x4443c0
call method.std::ostream.operator___std::ostream____std::ostream__
lea eax, [ebp - 0x198]
mov dword [esp], eax
call sym.printH_int_____10__
mov byte [ebp - 0x332], 1
mov dword [ebp - 0x330], 2
mov dword [ebp - 0x32c], 2
mov eax, dword [ebp - 0x330]
mov word [ebp - 0x338], ax
mov eax, dword [ebp - 0x32c]
mov word [ebp - 0x336], ax
mov dword [esp], 0xfffffff5
call sub.KERNEL32.dll_GetStdHandle
sub esp, 4
mov edx, eax
mov eax, dword [ebp - 0x338]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_SetConsoleCursorPosition
sub esp, 8
call sym._getch
mov byte [ebp - 0x331], al
movzx eax, byte [ebp - 0x331]
mov byte [ebp - 0x33d], al
cmp byte [ebp - 0x33d], 0x6a
je 0x401fc7
cmp byte [ebp - 0x33d], 0x6a
jg 0x401fac
cmp byte [ebp - 0x33d], 0xd
je 0x4020ff
cmp byte [ebp - 0x33d], 0x69
je 0x402063
jmp 0x4021e5
cmp byte [ebp - 0x33d], 0x6b
je 0x4020b1
cmp byte [ebp - 0x33d], 0x6c
je 0x402015
jmp 0x4021e5
cmp dword [ebp - 0x330], 0
js 0x4021e5
lea eax, [ebp - 0x330]
sub dword [eax], 2
mov eax, dword [ebp - 0x330]
mov word [ebp - 0x338], ax
mov dword [esp], 0xfffffff5
call sub.KERNEL32.dll_GetStdHandle
sub esp, 4
mov edx, eax
mov eax, dword [ebp - 0x338]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_SetConsoleCursorPosition
sub esp, 8
jmp 0x4021e5
cmp dword [ebp - 0x330], 0x11
jg 0x4021e5
lea eax, [ebp - 0x330]
add dword [eax], 2
mov eax, dword [ebp - 0x330]
mov word [ebp - 0x338], ax
mov dword [esp], 0xfffffff5
call sub.KERNEL32.dll_GetStdHandle
sub esp, 4
mov edx, eax
mov eax, dword [ebp - 0x338]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_SetConsoleCursorPosition
sub esp, 8
jmp 0x4021e5
cmp dword [ebp - 0x32c], 0
js 0x4021e5
lea eax, [ebp - 0x32c]
sub dword [eax], 2
mov eax, dword [ebp - 0x32c]
mov word [ebp - 0x336], ax
mov dword [esp], 0xfffffff5
call sub.KERNEL32.dll_GetStdHandle
sub esp, 4
mov edx, eax
mov eax, dword [ebp - 0x338]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_SetConsoleCursorPosition
sub esp, 8
jmp 0x4021e5
cmp dword [ebp - 0x32c], 0x11
jg 0x4021e5
lea eax, [ebp - 0x32c]
add dword [eax], 2
mov eax, dword [ebp - 0x32c]
mov word [ebp - 0x336], ax
mov dword [esp], 0xfffffff5
call sub.KERNEL32.dll_GetStdHandle
sub esp, 4
mov edx, eax
mov eax, dword [ebp - 0x338]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_SetConsoleCursorPosition
sub esp, 8
jmp 0x4021e5
mov edx, dword [ebp - 0x32c]
mov eax, edx
sar eax, 0x1f
shr eax, 0x1f
lea eax, [edx + eax]
sar eax, 1
mov dword [esp + 0xc], eax
mov edx, dword [ebp - 0x330]
mov eax, edx
sar eax, 0x1f
shr eax, 0x1f
lea eax, [edx + eax]
sar eax, 1
mov dword [esp + 8], eax
lea eax, [ebp - 0x328]
mov dword [esp + 4], eax
lea eax, [ebp - 0x198]
mov dword [esp], eax
call sym.reveal_int_____10___int_____10___int__int_
test al, al
je 0x4021e5
lea eax, [ebp - 0x198]
mov dword [esp], eax
call sym.printG_int_____10__
mov byte [ebp - 0x332], 0
mov dword [ebp - 0x330], 0x64
mov dword [ebp - 0x32c], 0x64
mov eax, dword [ebp - 0x330]
mov word [ebp - 0x338], ax
mov eax, dword [ebp - 0x32c]
mov word [ebp - 0x336], ax
mov dword [esp], 0xfffffff5
call sub.KERNEL32.dll_GetStdHandle
sub esp, 4
mov edx, eax
mov eax, dword [ebp - 0x338]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_SetConsoleCursorPosition
sub esp, 8
mov dword [esp + 4], 0x441006
mov dword [esp], 0x4443c0
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 [ebp - 0x33c], 0
jmp 0x40228e
lea eax, [ebp - 0x328]
mov dword [esp], eax
call sym.win_int_____10__
test al, al
je 0x401f63
lea eax, [ebp - 0x198]
mov dword [esp], eax
call sym.printG_int_____10__
mov byte [ebp - 0x332], 0
mov dword [ebp - 0x330], 0x64
mov dword [ebp - 0x32c], 0x64
mov eax, dword [ebp - 0x330]
mov word [ebp - 0x338], ax
mov eax, dword [ebp - 0x32c]
mov word [ebp - 0x336], ax
mov dword [esp], 0xfffffff5
call sub.KERNEL32.dll_GetStdHandle
sub esp, 4
mov edx, eax
mov eax, dword [ebp - 0x338]
mov dword [esp + 4], eax
mov dword [esp], edx
call sub.KERNEL32.dll_SetConsoleCursorPosition
sub esp, 8
mov dword [esp + 4], 0x441012
mov dword [esp], 0x4443c0
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 [ebp - 0x33c], 0
mov eax, dword [ebp - 0x33c]
leave
ret