Function at 0x210071770
Capabilities:
Manipulate console buffer

Disassembly:
push r14
push r13
push r12
push rbx
sub rsp, 0x48
mov r12, rcx
mov r13, rdx
cmp r8b, 0x68
je 0x2100718d0
cmp qword [rcx + 0x4a8], 0
je 0x2100718bb
movzx eax, word [rcx + 0x4a4]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x38], 0
sub eax, 1
mov word [rsp + 0x3e], ax
movzx eax, word [rcx + 0x4a2]
sub eax, 1
mov word [rsp + 0x3c], ax
movsx eax, word [rcx + 0x486]
sub eax, 1
mov dword [rsp + 0x28], eax
movsx eax, word [rcx + 0x484]
sub eax, 1
mov dword [rsp + 0x20], eax
call method.dev_console.clear_screen_void__int__int__int__int_
mov ecx, dword [0x21024fa70]
call sym.acquire_attach_mutex_unsigned_int_
lea rax, [rsp + 0x38]
xor r9d, r9d
mov rcx, r13
mov qword [rsp + 0x20], rax
mov rdx, qword [r12 + 0x4a8]
mov r8d, dword [r12 + 0x4a2]
call sym.WriteConsoleOutputW
mov r14d, eax
call sym.release_attach_mutex__
test r14d, r14d
jne 0x210071830
test byte [0x210273880], 1
jne 0x210071aa0
mov rcx, qword [r12 + 0x4a8]
call sym.cfree
mov ecx, dword [0x21024fa70]
movzx r14d, word [r12 + 0x4b4]
mov qword [r12 + 0x4a8], 0
shl r14d, 0x10
call sym.acquire_attach_mutex_unsigned_int_
mov edx, r14d
mov rcx, r13
call sym.SetConsoleCursorPosition
test eax, eax
jne 0x21007187d
test byte [0x210273880], 1
jne 0x210071a70
mov edx, dword [r12 + 0x4b0]
mov rcx, r13
call sym.SetConsoleCursorPosition
test eax, eax
jne 0x21007189e
test byte [0x210273880], 1
jne 0x210071a40
call sym.release_attach_mutex__
mov rdx, r13
mov rcx, r12
mov dword [r12 + 0x49e], 0
call method.dev_console.fillin_void_
nop
add rsp, 0x48
pop rbx
pop r12
pop r13
pop r14
ret
call method.dev_console.fillin_void_
mov r8, qword [r12 + 0x4a8]
movzx eax, word [r12 + 0x4a0]
lea ecx, [rax + 1]
movzx eax, word [r12 + 0x486]
mov word [r12 + 0x4a4], cx
cmp cx, ax
cmovle ax, word [r12 + 0x484]
mov word [r12 + 0x4a2], ax
test r8, r8
je 0x210071930
mov rcx, r8
call sym.cfree
movzx eax, word [r12 + 0x4a2]
movzx ecx, word [r12 + 0x4a4]
movsx rdx, ax
movsx rcx, cx
mov rax, rdx
imul rax, rcx
mov ecx, 0xe
lea rdx, [rax*4]
call sym.cmalloc_abort
mov r8d, dword [r12 + 0x4a2]
mov rcx, r13
mov qword [r12 + 0x4a8], rax
mov rdx, rax
mov eax, dword [r12 + 0x488]
mov dword [r12 + 0x4b0], eax
movzx eax, word [r12 + 0x490]
mov word [r12 + 0x4b4], ax
movzx eax, word [r12 + 0x4a4]
lea ebx, [rax - 1]
movzx eax, word [r12 + 0x4a2]
lea r14d, [rax - 1]
mov rax, rbx
movzx r9d, r14w
shl rax, 0x30
shl r9, 0x20
or r9, rax
call sym.ReadConsoleOutputWrapper_void___CHAR_INFO___COORD___SMALL_RECT_
test eax, eax
jne 0x2100719ca
test byte [0x210273880], 1
jne 0x210071ac8
mov ecx, dword [0x21024fa70]
call sym.acquire_attach_mutex_unsigned_int_
xor edx, edx
mov rcx, r13
call sym.SetConsoleCursorPosition
test eax, eax
jne 0x2100719f0
test byte [0x210273880], 1
jne 0x210071af0
call sym.release_attach_mutex__
movsx ebx, bx
movsx r14d, r14w
xor r9d, r9d
mov dword [rsp + 0x28], ebx
xor r8d, r8d
mov rdx, r13
mov rcx, r12
mov dword [rsp + 0x20], r14d
call method.dev_console.clear_screen_void__int__int__int__int_
mov dword [r12 + 0x49e], 0
mov dword [r12 + 0x488], 0
add rsp, 0x48
pop rbx
pop r12
pop r13
pop r14
ret
mov qword [rsp + 0x20], r13
lea r9, str.SetConsoleCursorInfo__p__save_cursor__failed_during_restore___E
lea r8, str.void_dev_console::save_restore_HANDLE__char_
mov edx, 0x40
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x21007189e
mov qword [rsp + 0x20], r13
lea r9, str.SetConsoleCursorInfo__p__cob__failed_during_restore___E
lea r8, str.void_dev_console::save_restore_HANDLE__char_
mov edx, 0x40
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x21007187d
lea r9, str.WriteConsoleOutputW_failed___E
lea r8, str.void_dev_console::save_restore_HANDLE__char_
mov edx, 0x40
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x210071830
lea r9, str.ReadConsoleOutputWrapper_h__...__failed_during_save___E
lea r8, str.void_dev_console::save_restore_HANDLE__char_
mov edx, 0x40
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100719ca
mov qword [rsp + 0x20], r13
lea r9, str.SetConsoleCursorInfo__p__...__failed_during_save___E
lea r8, str.void_dev_console::save_restore_HANDLE__char_
mov edx, 0x40
lea rcx, [0x210273880]
call method.strace.prntf_unsigned_int__char_const__char_const__..._
jmp 0x2100719f0