Function at 0x428f00
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x28]
push ebx
mov ebx, eax
sub esp, 0x3c
call fcn.0057d110
mov dword [eax], 0x58f03f
mov dword [eax + 4], 0xe1
mov dword [esp + 4], 0
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_SetConsoleCursorPosition]
sub esp, 8
test eax, eax
setne al
mov dword [esp + 4], str.Cursor_in_upper_left_n
movzx eax, al
mov dword [esp], eax
call fcn.00427ef0
mov dword [ebp - 0x28], 0xffffffff
call fcn.0057d110
mov esi, dword [sym.imp.kernel32.dll_WriteConsoleA]
mov dword [eax], 0x58f03f
mov dword [eax + 4], 0xe4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebx
call esi
sub esp, 0x14
test eax, eax
je 0x428f9d
mov ecx, dword [ebp - 0x28]
xor eax, eax
test ecx, ecx
sete al
mov dword [esp], eax
mov dword [esp + 4], str.WriteConsole_n
call fcn.00427ef0
lea eax, [ebp - 0x22]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [sym.imp.kernel32.dll_GetConsoleScreenBufferInfo]
mov dword [ebp - 0x2c], eax
call eax
sub esp, 8
mov edx, eax
test eax, eax
je 0x428fd7
xor edx, edx
movzx eax, word [ebp - 0x1e]
or ax, word [ebp - 0x1c]
sete dl
mov dword [ebp - 0x30], edx
call fcn.0057d110
mov dword [eax], 0x58f03f
mov dword [eax + 4], 0xe5
movsx eax, word [ebp - 0x1c]
mov dword [esp + 0x14], eax
movsx eax, word [ebp - 0x1e]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Expected_cursor_at___d__d___got___d__d__n
mov edx, dword [ebp - 0x30]
mov dword [esp], edx
call fcn.00427ef0
mov dword [ebp - 0x28], 0xffffffff
call fcn.0057d110
mov dword [eax], 0x58f03f
mov dword [eax + 4], 0xf6
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x593250
mov dword [esp], ebx
call esi
sub esp, 0x14
test eax, eax
je 0x42906a
mov edx, dword [ebp - 0x28]
xor eax, eax
test edx, edx
sete al
mov dword [esp], eax
mov dword [esp + 4], str.WriteConsole_n
call fcn.00427ef0
lea eax, [ebp - 0x22]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2c]
call eax
sub esp, 8
mov edx, eax
test eax, eax
je 0x42909f
xor edx, edx
movzx eax, word [ebp - 0x1e]
or ax, word [ebp - 0x1c]
sete dl
mov dword [ebp - 0x30], edx
call fcn.0057d110
mov dword [eax], 0x58f03f
mov dword [eax + 4], 0xf7
movsx eax, word [ebp - 0x1c]
mov dword [esp + 0x14], eax
movsx eax, word [ebp - 0x1e]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov dword [esp + 4], str.Expected_cursor_at___d__d___got___d__d__n
mov edx, dword [ebp - 0x30]
mov dword [esp], edx
call fcn.00427ef0
mov dword [ebp - 0x28], 0xffffffff
call fcn.0057d110
mov dword [eax], 0x58f03f
mov dword [eax + 4], 0xfc
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0x10
mov dword [esp + 4], 0x593250
mov dword [esp], ebx
call esi
sub esp, 0x14
test eax, eax
je 0x429131
xor eax, eax
cmp dword [ebp - 0x28], 0x10
sete al
mov dword [esp], eax
mov dword [esp + 4], str.WriteConsole_n
call fcn.00427ef0
lea eax, [ebp - 0x22]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x2c]
call eax
sub esp, 8
mov ebx, eax
test eax, eax
je 0x429162
xor ebx, ebx
cmp word [ebp - 0x1e], 0x10
je 0x4291b0
call fcn.0057d110
mov dword [eax], 0x58f03f
mov dword [eax + 4], 0xfe
movsx eax, word [ebp - 0x1c]
mov dword [esp + 0x14], eax
movsx eax, word [ebp - 0x1e]
mov dword [esp], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x10
mov dword [esp + 4], str.Expected_cursor_at___d__d___got___d__d__n
call fcn.00427ef0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor ebx, ebx
cmp word [ebp - 0x1c], 0
sete bl
jmp 0x429162