Function at 0x42be70
Capabilities:
Manipulate console buffer

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff8
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x58
mov dword [ebp - 0x3c], edx
mov edx, dword [0x707bac]
test edx, edx
je 0x42bea0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x22], 0
mov word [ebp - 0x16], ax
mov eax, 2
mov dword [ebp - 0x1e], 0
mov dword [ebp - 0x1a], 0
mov word [ebp - 0x24], ax
mov dword [ebp - 0x14], 1
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0
mov dword [esp + 4], 3
mov dword [esp], 0xc0000000
call dword [sym.imp.kernel32.dll_CreateConsoleScreenBuffer]
sub esp, 0x14
mov esi, eax
mov dword [ebp - 0x38], eax
mov eax, 0x4e4
call fcn.00427180
mov edi, dword fs:[0x18]
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.CreateConsoleScreenBuffer_failed:__lu_n
mov dword [esp + 8], eax
xor eax, eax
cmp esi, 0xffffffff
setne al
mov dword [esp], eax
call fcn.00427ef0
mov eax, dword [sym.imp.kernel32.dll_SetConsoleActiveScreenBuffer]
mov dword [esp], esi
mov dword [ebp - 0x48], eax
call eax
sub esp, 4
mov esi, eax
mov eax, 0x4e7
call fcn.00427180
mov eax, dword [edi + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.SetConsoleActiveScreenBuffer_failed:__lu_n
mov dword [esp + 8], eax
call fcn.00427ef0
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_FlushConsoleInputBuffer]
sub esp, 4
mov esi, eax
mov eax, 0x4e9
call fcn.00427180
mov eax, dword [edi + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.FlushConsoleInputBuffer_failed:__lu_n
mov dword [esp + 8], eax
call fcn.00427ef0
mov edx, 1
mov eax, 1
call fcn.00428af0
mov edx, 1
mov dword [ebp - 0x44], eax
xor eax, eax
call fcn.00428af0
mov esi, dword [sym.imp.kernel32.dll_WaitForSingleObject]
mov dword [ebp - 0x40], eax
jmp 0x42bfdf
mov eax, ebx
call fcn.0042bda0
test eax, eax
je 0x42c580
mov dword [esp + 4], 0
mov dword [esp], ebx
call esi
sub esp, 8
mov edi, eax
test eax, eax
je 0x42bfd0
xor edx, edx
cmp eax, 0x102
sete dl
mov eax, 0x4f2
mov dword [ebp - 0x4c], edx
call fcn.00427180
mov dword [esp + 8], edi
mov dword [esp + 4], 0x58fc1c
mov edx, dword [ebp - 0x4c]
mov dword [esp], edx
call fcn.00427ef0
jmp 0x42c037
mov eax, ebx
call fcn.0042bda0
test eax, eax
je 0x42c590
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call esi
sub esp, 8
mov edi, eax
test eax, eax
je 0x42c028
xor edx, edx
cmp eax, 0x102
sete dl
mov eax, 0x4f7
mov dword [ebp - 0x4c], edx
call fcn.00427180
mov dword [esp + 8], edi
mov dword [esp + 4], 0x58fc1c
mov edx, dword [ebp - 0x4c]
mov dword [esp], edx
call fcn.00427ef0
jmp 0x42c08f
mov eax, ebx
call fcn.0042bda0
test eax, eax
je 0x42c5a0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call esi
sub esp, 8
mov edi, eax
test eax, eax
je 0x42c080
xor edx, edx
cmp eax, 0x102
sete dl
mov eax, 0x4fc
mov dword [ebp - 0x4c], edx
call fcn.00427180
mov dword [esp + 8], edi
mov dword [esp + 4], 0x58fc1c
mov edx, dword [ebp - 0x4c]
mov dword [esp], edx
call fcn.00427ef0
mov dword [ebp - 0x4c], ebx
mov edi, dword [ebp - 0x44]
jmp 0x42c0f0
mov eax, dword [ebp - 0x40]
call fcn.0042bda0
test eax, eax
je 0x42c5b0
mov dword [esp + 4], 0
mov dword [esp], edi
call esi
sub esp, 8
mov ebx, eax
test eax, eax
je 0x42c0e0
xor edx, edx
mov ebx, dword [ebp - 0x4c]
cmp eax, 0x102
mov edi, eax
sete dl
mov eax, 0x501
mov dword [ebp - 0x4c], edx
call fcn.00427180
mov dword [esp + 8], edi
mov dword [esp + 4], 0x58fc1c
mov edx, dword [ebp - 0x4c]
mov dword [esp], edx
call fcn.00427ef0
mov dword [ebp - 0x4c], ebx
mov edi, dword [ebp - 0x40]
jmp 0x42c157
mov eax, edi
call fcn.0042bda0
test eax, eax
je 0x42c570
mov dword [esp + 4], 0
mov dword [esp], edi
call esi
sub esp, 8
mov ebx, eax
test eax, eax
je 0x42c148
xor edx, edx
mov ebx, dword [ebp - 0x4c]
cmp eax, 0x102
mov edi, eax
sete dl
mov eax, 0x506
mov dword [ebp - 0x4c], edx
call fcn.00427180
mov dword [esp + 8], edi
lea edi, [ebp - 0x30]
mov dword [esp + 4], 0x58fc1c
mov edx, dword [ebp - 0x4c]
mov dword [esp], edx
call fcn.00427ef0
jmp 0x42c1b7
mov eax, ebx
call fcn.0042bda0
test eax, eax
je 0x42c540
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov dword [esp], ebx
call dword [sym.imp.ntdll.dll_NtWaitForSingleObject]
sub esp, 0xc
test eax, eax
je 0x42c1a8
mov dword [ebp - 0x4c], eax
mov eax, 0x50b
call fcn.00427180
mov edx, dword [ebp - 0x4c]
mov eax, 1
cmp edx, 0x102
jne 0x42c550
mov dword [esp + 8], edx
mov dword [esp + 4], str.NtWaitForSingleObject_returned__lx_n
mov dword [esp], eax
call fcn.00427ef0
jmp 0x42c21f
mov eax, ebx
call fcn.0042bda0
test eax, eax
je 0x42c510
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call dword [sym.imp.ntdll.dll_NtWaitForSingleObject]
sub esp, 0xc
test eax, eax
je 0x42c210
mov dword [ebp - 0x4c], eax
mov eax, 0x511
call fcn.00427180
mov edx, dword [ebp - 0x4c]
mov eax, 1
cmp edx, 0x102
jne 0x42c520
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], str.NtWaitForSingleObject_returned__lx_n
call fcn.00427ef0
lea eax, [ebp - 0x34]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x24]
mov dword [esp + 8], 1
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_WriteConsoleInputW]
sub esp, 0x10
mov dword [ebp - 0x4c], eax
mov eax, 0x515
call fcn.00427180
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 4], str.WriteConsoleInputW_failed:__lu_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x4c]
mov dword [esp], edx
call fcn.00427ef0
mov dword [esp], ebx
mov dword [esp + 4], 0
call esi
sub esp, 8
mov dword [ebp - 0x4c], eax
mov eax, 0x518
call fcn.00427180
mov edx, dword [ebp - 0x4c]
xor eax, eax
mov dword [esp + 4], 0x58fc1c
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00427ef0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x4c], eax
mov eax, 0x51a
call fcn.00427180
mov edx, dword [ebp - 0x4c]
xor eax, eax
mov dword [esp + 4], 0x58fc1c
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00427ef0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x4c], eax
mov eax, 0x51c
call fcn.00427180
mov edx, dword [ebp - 0x4c]
xor eax, eax
mov dword [esp + 4], 0x58fc1c
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00427ef0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x44]
mov dword [esp], eax
call esi
sub esp, 8
mov dword [ebp - 0x4c], eax
mov eax, 0x51e
call fcn.00427180
mov edx, dword [ebp - 0x4c]
xor eax, eax
mov dword [esp + 4], 0x58fc1c
test edx, edx
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.00427ef0
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x40]
mov dword [esp], eax
call esi
sub esp, 8
mov esi, eax
mov eax, 0x520
call fcn.00427180
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x58fc1c
mov dword [esp], eax
call fcn.00427ef0
mov dword [esp], ebx
mov dword [esp + 8], edi
mov dword [esp + 4], 0
call dword [sym.imp.ntdll.dll_NtWaitForSingleObject]
sub esp, 0xc
mov ebx, eax
mov eax, 0x522
call fcn.00427180
mov eax, 1
test ebx, ebx
je 0x42c436
mov edx, dword [0x8f0770]
test edx, edx
sete dl
xor eax, eax
cmp ebx, 0xc0000022
sete al
and eax, edx
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.NtWaitForSingleObject_returned__lx_n
call fcn.00427ef0
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call dword [sym.imp.ntdll.dll_NtWaitForSingleObject]
sub esp, 0xc
mov ebx, eax
mov eax, 0x525
call fcn.00427180
mov eax, 1
test ebx, ebx
je 0x42c491
mov eax, dword [0x8f0770]
test eax, eax
sete dl
xor eax, eax
cmp ebx, 0xc0000022
sete al
and eax, edx
mov dword [esp + 8], ebx
mov dword [esp], eax
mov dword [esp + 4], str.NtWaitForSingleObject_returned__lx_n
call fcn.00427ef0
mov eax, dword [ebp - 0x3c]
mov dword [esp], eax
mov eax, dword [ebp - 0x48]
call eax
sub esp, 4
mov ebx, eax
mov eax, 0x529
call fcn.00427180
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], str.SetConsoleActiveScreenBuffer_failed:__lu_n
mov dword [esp + 8], eax
call fcn.00427ef0
mov eax, dword [ebp - 0x40]
mov ebx, dword [sym.imp.kernel32.dll_CloseHandle]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x44]
sub esp, 4
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x38]
sub esp, 4
mov dword [esp], eax
call ebx
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov dword [ebp - 0x4c], eax
mov eax, 0x511
call fcn.00427180
mov edx, dword [ebp - 0x4c]
mov ecx, dword [0x8f0770]
test ecx, ecx
sete cl
xor eax, eax
cmp edx, 0xc0000022
sete al
and eax, ecx
jmp 0x42c25f
mov dword [ebp - 0x4c], eax
mov eax, 0x50b
call fcn.00427180
mov edx, dword [ebp - 0x4c]
mov eax, dword [0x8f0770]
test eax, eax
sete cl
xor eax, eax
cmp edx, 0xc0000022
sete al
and eax, ecx
jmp 0x42c1f4
mov edi, ebx
mov edx, eax
mov ebx, dword [ebp - 0x4c]
jmp 0x42c17c
mov edx, eax
jmp 0x42bfff
mov edx, eax
jmp 0x42c05a
mov edx, eax
jmp 0x42c0b2
mov edi, ebx
mov edx, eax
mov ebx, dword [ebp - 0x4c]
jmp 0x42c115