Function at 0x402230
Capabilities:
Manipulate console buffer
Terminate process

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44ac88
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
mov eax, dword [0x45e054]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.00402040
call fcn.00401f10
push 8
push str.Status:
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
call fcn.00405d00
push 0xe
mov dword [ebp - 4], 0
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
call edi
mov esi, dword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
push eax
call esi
mov ecx, dword [sym.imp.MSVCP120.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0x40]
call fcn.00405fb0
push 7
push 0xfffffffffffffff5
call edi
push eax
call esi
mov eax, dword [ebp - 0x30]
add dword [0x45ee1c], eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x2c], 0x10
mov ebx, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
jb 0x4022dd
push dword [ebp - 0x40]
call ebx
add esp, 4
push 0x11
push str.Waiting_for_game_n
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
call fcn.00405d00
push 0xa
push 0xfffffffffffffff5
mov dword [ebp - 4], 1
call edi
push eax
call esi
mov ecx, dword [sym.imp.MSVCP120.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edx, [ebp - 0x40]
call fcn.00405fb0
push 7
push 0xfffffffffffffff5
call edi
push eax
call esi
mov eax, dword [ebp - 0x30]
add dword [0x45ee1c], eax
mov dword [ebp - 4], 0xffffffff
cmp dword [ebp - 0x2c], 0x10
jb 0x402343
push dword [ebp - 0x40]
call ebx
add esp, 4
inc dword [0x45ee18]
cmp byte [0x45ee08], 0
mov dword [0x45ee1c], 0
je 0x402745
lea ecx, [ebp - 0x28]
call fcn.00401890
mov dword [ebp - 4], 2
lea edx, [ebp - 0x28]
cmp dword [0x45e0a4], 0x10
mov ecx, 0x45e090
mov edi, dword [0x45e0a0]
mov esi, edi
cmovae ecx, dword [0x45e090]
cmp dword [ebp - 0x14], 0x10
mov ebx, dword [ebp - 0x18]
cmovae edx, dword [ebp - 0x28]
cmp ebx, edi
cmovb esi, ebx
test esi, esi
je 0x4023f6
sub esi, 4
jb 0x4023b7
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x4023bc
add edx, 4
add ecx, 4
sub esi, 4
jae 0x4023a6
cmp esi, 0xfffffffc
je 0x4023f0
mov al, byte [edx]
cmp al, byte [ecx]
jne 0x4023e9
cmp esi, 0xfffffffd
je 0x4023f0
mov al, byte [edx + 1]
cmp al, byte [ecx + 1]
jne 0x4023e9
cmp esi, 0xfffffffe
je 0x4023f0
mov al, byte [edx + 2]
cmp al, byte [ecx + 2]
jne 0x4023e9
cmp esi, 0xffffffff
je 0x4023f0
mov al, byte [edx + 3]
cmp al, byte [ecx + 3]
je 0x4023f0
sbb eax, eax
or eax, 1
jmp 0x4023f2
xor eax, eax
test eax, eax
jne 0x402408
cmp ebx, edi
jae 0x4023ff
or eax, 0xffffffff
jmp 0x402406
xor eax, eax
cmp ebx, edi
setne al
test eax, eax
sete al
test al, al
jne 0x402733
mov edi, dword [ebp - 0x14]
lea edx, [ebp - 0x28]
cmp edi, 0x10
mov ecx, 4
cmovae edx, dword [ebp - 0x28]
cmp ebx, ecx
cmovb ecx, ebx
test ecx, ecx
je 0x402488
mov esi, str.help
sub ecx, 4
jb 0x402449
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x40244e
add edx, 4
add esi, 4
sub ecx, 4
jae 0x402438
cmp ecx, 0xfffffffc
je 0x402482
mov al, byte [edx]
cmp al, byte [esi]
jne 0x40247b
cmp ecx, 0xfffffffd
je 0x402482
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x40247b
cmp ecx, 0xfffffffe
je 0x402482
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x40247b
cmp ecx, 0xffffffff
je 0x402482
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x402482
sbb eax, eax
or eax, 1
jmp 0x402484
xor eax, eax
test eax, eax
jne 0x40249c
cmp ebx, 4
jae 0x402492
or eax, 0xffffffff
jmp 0x40249a
xor eax, eax
cmp ebx, 4
setne al
test eax, eax
sete al
test al, al
je 0x4024ae
call fcn.00401f10
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
cmp edi, 0x10
lea edx, [ebp - 0x28]
mov ecx, 6
cmovae edx, dword [ebp - 0x28]
cmp ebx, ecx
cmovb ecx, ebx
test ecx, ecx
je 0x402520
mov esi, str.logout
sub ecx, 4
jb 0x4024e1
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x4024e6
add edx, 4
add esi, 4
sub ecx, 4
jae 0x4024d0
cmp ecx, 0xfffffffc
je 0x40251a
mov al, byte [edx]
cmp al, byte [esi]
jne 0x402513
cmp ecx, 0xfffffffd
je 0x40251a
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x402513
cmp ecx, 0xfffffffe
je 0x40251a
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x402513
cmp ecx, 0xffffffff
je 0x40251a
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x40251a
sbb eax, eax
or eax, 1
jmp 0x40251c
xor eax, eax
test eax, eax
jne 0x402534
cmp ebx, 6
jae 0x40252a
or eax, 0xffffffff
jmp 0x402532
xor eax, eax
cmp ebx, 6
setne al
test eax, eax
sete al
test al, al
je 0x40254d
xor cl, cl
call fcn.004088c0
call fcn.00402770
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
cmp edi, 0x10
lea edx, [ebp - 0x28]
mov ecx, 4
cmovae edx, dword [ebp - 0x28]
cmp ebx, ecx
cmovb ecx, ebx
test ecx, ecx
je 0x4025c0
mov esi, str.quit
sub ecx, 4
jb 0x402581
nop
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x402586
add edx, 4
add esi, 4
sub ecx, 4
jae 0x402570
cmp ecx, 0xfffffffc
je 0x4025ba
mov al, byte [edx]
cmp al, byte [esi]
jne 0x4025b3
cmp ecx, 0xfffffffd
je 0x4025ba
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x4025b3
cmp ecx, 0xfffffffe
je 0x4025ba
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x4025b3
cmp ecx, 0xffffffff
je 0x4025ba
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x4025ba
sbb eax, eax
or eax, 1
jmp 0x4025bc
xor eax, eax
test eax, eax
jne 0x4025d4
cmp ebx, 4
jae 0x4025ca
or eax, 0xffffffff
jmp 0x4025d2
xor eax, eax
cmp ebx, 4
setne al
test eax, eax
sete al
test al, al
jne 0x40271d
cmp edi, 0x10
lea edx, [ebp - 0x28]
mov ecx, 5
cmovae edx, dword [ebp - 0x28]
cmp ebx, ecx
cmovb ecx, ebx
test ecx, ecx
je 0x402651
mov esi, str.clear
sub ecx, 4
jb 0x402612
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x402617
add edx, 4
add esi, 4
sub ecx, 4
jae 0x402601
cmp ecx, 0xfffffffc
je 0x40264b
mov al, byte [edx]
cmp al, byte [esi]
jne 0x402644
cmp ecx, 0xfffffffd
je 0x40264b
mov al, byte [edx + 1]
cmp al, byte [esi + 1]
jne 0x402644
cmp ecx, 0xfffffffe
je 0x40264b
mov al, byte [edx + 2]
cmp al, byte [esi + 2]
jne 0x402644
cmp ecx, 0xffffffff
je 0x40264b
mov al, byte [edx + 3]
cmp al, byte [esi + 3]
je 0x40264b
sbb eax, eax
or eax, 1
jmp 0x40264d
xor eax, eax
test eax, eax
jne 0x402665
cmp ebx, 5
jae 0x40265b
or eax, 0xffffffff
jmp 0x402663
xor eax, eax
cmp ebx, 5
setne al
test eax, eax
sete al
test al, al
je 0x4026f6
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x44], eax
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov edi, eax
cmp edi, 0xffffffff
je 0x4026e4
lea eax, [ebp - 0x40]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x4026e4
movsx eax, word [ebp - 0x40]
movsx ebx, word [ebp - 0x3e]
mov esi, dword [ebp - 0x44]
imul ebx, eax
lea eax, [ebp - 0x48]
push eax
push esi
mov dword [0x45ee1c], 0
mov dword [0x45ee18], 0
push ebx
push 0x20
push edi
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
test eax, eax
je 0x4026e4
lea eax, [ebp - 0x48]
push eax
push esi
push ebx
push dword [ebp - 0x38]
push edi
call dword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
test eax, eax
je 0x4026e4
push esi
push edi
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call fcn.004019c0
call fcn.00402040
call fcn.00401f10
mov edi, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
cmp edi, 0x10
jb 0x40270e
push dword [ebp - 0x28]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
cmp byte [0x45ee08], 0
jne 0x402360
jmp 0x402745
xor cl, cl
mov byte [0x45ee0a], 1
call fcn.004088c0
push 0
call dword [sym.imp.MSVCR120.dll_exit]
cmp dword [ebp - 0x14], 0x10
jb 0x402745
push dword [ebp - 0x28]
call dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0044998c
mov esp, ebp
pop ebp
ret