Function at 0x140002c34
Capabilities:
Manipulate console buffer

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x1400400b0]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov ebx, ecx
mov r15, r9
mov ecx, edx
mov esi, r8d
mov r12d, edx
xor r14d, r14d
call fcn.14000de24
test eax, eax
je 0x140002d55
mov ecx, r12d
call qword [sym.imp.api_ms_win_crt_private_l1_1_0.dll__o__get_osfhandle]
nop dword [rax + rax]
mov rcx, rax
lea rdx, [rbp - 0x40]
mov rdi, rax
call qword [sym.imp.api_ms_win_core_console_l2_1_0.dll_GetConsoleScreenBufferInfo]
nop dword [rax + rax]
test eax, eax
je 0x140002d55
movsx eax, word [rbp - 0x34]
movsx r14d, word [rbp - 0x30]
sub r14d, eax
dec r14d
and dword [rbp - 0x50], 0
mov r9, r15
mov r8d, esi
mov ecx, ebx
call fcn.140002d94
lea rsi, [0x140053320]
mov r15d, eax
mov ebx, eax
test eax, eax
je 0x140002d89
mov ecx, 0xa0
test rdi, rdi
je 0x140002d5c
cmp byte [0x14005bcb4], 0
jne 0x1400284ce
cmp r15d, ecx
mov ebx, r15d
cmova ebx, ecx
and qword [rsp + 0x20], 0
lea r9, [rbp - 0x50]
mov r8d, ebx
mov rdx, rsi
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_console_l1_1_0.dll_WriteConsoleW]
nop dword [rax + rax]
test eax, eax
je 0x140028652
xor ecx, ecx
mov eax, ebx
mov dword [rbp - 0x50], ecx
lea rsi, [rsi + rax*2]
sub r15d, ebx
jne 0x140002cd5
test ecx, ecx
jne 0x14002867b
mov eax, ecx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.14001f920
add rsp, 0x80
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
xor edi, edi
jmp 0x140002cb0
lea r8d, [rbx + rbx]
mov rdx, rsi
lea r9, [rbp - 0x48]
mov ecx, r12d
call fcn.14000def4
test eax, eax
je 0x140028665
mov eax, dword [rbp - 0x48]
mov ecx, ebx
add rcx, rcx
cmp rax, rcx
je 0x140002d1c
jmp 0x140028665
mov ecx, dword [rbp - 0x50]
jmp 0x140002d2c
mov ecx, dword [0x14005bdc0]
cmp ecx, r14d
jb 0x140028619
and dword [0x14005bdc0], 0
lea rdx, [rbp - 0x40]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_console_l2_1_0.dll_GetConsoleScreenBufferInfo]
nop dword [rax + rax]
test eax, eax
je 0x140028613
mov r8d, dword [0x14005bdb0]
lea r9, [rbp - 0x50]
mov rdx, qword [0x14005bdb8]
mov rcx, rdi
and qword [rsp + 0x20], 0
call qword [sym.imp.api_ms_win_core_console_l1_1_0.dll_WriteConsoleW]
nop dword [rax + rax]
test eax, eax
je 0x140028613
mov ecx, 0xfffffff6
call qword [sym.imp.api_ms_win_core_processenvironment_l1_1_0.dll_GetStdHandle]
nop dword [rax + rax]
mov rcx, rax
call qword [sym.imp.api_ms_win_core_console_l2_1_0.dll_FlushConsoleInputBuffer]
nop dword [rax + rax]
lea rdx, [rbp - 0x4c]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_console_l1_1_0.dll_GetConsoleMode]
nop dword [rax + rax]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_console_l1_1_0.dll_SetConsoleMode]
nop dword [rax + rax]
call qword [sym.imp.api_ms_win_crt_private_l1_1_0.dll__o__getch]
nop dword [rax + rax]
mov edx, dword [rbp - 0x4c]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.api_ms_win_core_console_l1_1_0.dll_SetConsoleMode]
nop dword [rax + rax]
lea rdx, [rbp - 0x28]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_console_l2_1_0.dll_GetConsoleScreenBufferInfo]
nop dword [rax + rax]
movsx ecx, word [rbp - 0x3a]
movsx edx, word [rbp - 0x40]
movsx r8d, word [rbp - 0x28]
mov r9d, dword [rbp - 0x3c]
imul edx, ecx
movsx ecx, word [rbp - 0x22]
imul r8d, ecx
mov rcx, rdi
movsx eax, r9w
sub r8d, edx
mov edx, 0x20
add r8d, eax
movsx eax, word [rbp - 0x24]
add r8d, eax
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
call qword [sym.imp.api_ms_win_core_console_l2_1_0.dll_FillConsoleOutputCharacterW]
nop dword [rax + rax]
mov edx, dword [rbp - 0x3c]
mov rcx, rdi
call qword [sym.imp.api_ms_win_core_console_l2_1_0.dll_SetConsoleCursorPosition]
nop dword [rax + rax]
cmp bx, 3
jne 0x140028613
call fcn.14002ff2c
xor eax, eax
jmp 0x140002d36
mov ecx, dword [0x14005bdc0]
mov eax, r15d
mov rbx, rsi
lea rdx, [rsi + rax*2]
cmp rsi, rdx
jae 0x140028647
cmp ecx, r14d
jae 0x140028641
movzx eax, word [rbx]
add rbx, 2
cmp ax, 0xa
jne 0x14002863c
inc ecx
cmp rbx, rdx
jb 0x140028628
mov dword [0x14005bdc0], ecx
sub rbx, rsi
sar rbx, 1
jmp 0x140002cf5
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
mov ecx, eax
jmp 0x140002d1e
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
mov ecx, eax
mov dword [rbp - 0x50], eax
jmp 0x140002d2c
cmp r12d, 2
jne 0x140002d34
lea ecx, [r12 - 1]
call fcn.14000d734
int3