Function at 0x14002dbf0
Capabilities:
Manipulate console buffer

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x70]
sub rsp, 0x170
mov rax, qword [0x1400cfce8]
xor rax, rsp
mov qword [rbp + 0x60], rax
mov r13, rdx
mov rsi, rcx
xor r14d, r14d
mov dword [rsp + 0x30], r14d
test rdx, rdx
je 0x14002dd95
mov rax, qword [rdx + 8]
cmp qword [rdx], rax
je 0x14002dd95
mov byte [rcx + 0x48], 1
lea rdx, [0x140060b9c]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140008c90
lea rdx, [0x14000cd70]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rbx, qword [r13]
mov rax, qword [r13 + 8]
mov qword [rsp + 0x40], rax
cmp rbx, rax
je 0x14002dd76
nop dword [rax + rax]
mov edi, r14d
mov r15d, r14d
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
sub rax, rcx
sar rax, 5
test rax, rax
je 0x14002dd63
nop dword [rax]
mov r14d, r15d
mov edx, r15d
shl rdx, 5
add rdx, rcx
mov r8, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 0x10
jb 0x14002dcbb
mov rdx, qword [rdx]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.1400090d0
lea rdx, [0x14000cd70]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
mov rax, qword [rbx + 8]
sub rax, qword [rbx]
sar rax, 5
inc r15d
mov r12d, r15d
cmp r12, rax
jne 0x14002dd12
lea rdx, [0x140060b9c]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140008c90
lea rdx, [0x14000cd70]
mov rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64____cdecl___class_std::basic_ostream_char__struct_std::char_traits_char______ptr64_____ptr64]
jmp 0x14002dd49
mov rax, qword [r13 + 0x18]
add edi, dword [rax + r14*4]
lea rdx, [rsp + 0x48]
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x14002dd49
movsx eax, word [rsp + 0x4c]
cmp eax, edi
jge 0x14002dd49
mov word [rsp + 0x4c], di
mov edx, dword [rsp + 0x4c]
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov rcx, qword [rbx]
mov rax, qword [rbx + 8]
sub rax, rcx
sar rax, 5
cmp r12, rax
jb 0x14002dca0
xor r14d, r14d
add rbx, 0x18
cmp rbx, qword [rsp + 0x40]
jne 0x14002dc80
mov rbx, qword [r13]
mov r8, qword [r13 + 8]
mov rdx, rbx
mov rcx, r13
call fcn.140022bf0
mov rax, qword [r13]
mov qword [r13 + 8], rax
mov rax, qword [r13 + 0x18]
mov qword [r13 + 0x20], rax
lea rdx, [rsp + 0x48]
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x14002e43f
mov r15d, 0x20
lea r13d, [r15 - 0x1f]
mov r12, 0xffffffffffffffff
cmp byte [rsi + 0x101], 0
je 0x14002df34
lea rdx, [rsi + 0x108]
mov r8d, 0xfde9
lea rcx, [rbp]
call fcn.14002e860
mov rbx, rax
mov dword [rsp + 0x30], r13d
lea rax, [0x140060ba4]
lea rdx, [0x140060ba8]
cmp byte [rsi + 0x102], 0
cmovne rdx, rax
mov qword [rbp - 0x60], r14
mov qword [rbp - 0x50], r14
mov qword [rbp - 0x48], recv
mov byte [rbp - 0x60], 0
mov r8, r12
nop dword [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x14002de20
lea rcx, [rbp - 0x60]
call fcn.14000a5d0
nop
mov dword [rsp + 0x30], 3
mov r9d, 8
lea r8, str.history_
xor edx, edx
lea rcx, [rbp - 0x60]
call fcn.1400121b0
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x50], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], recv
mov byte [rax], 0
mov dword [rsp + 0x30], 0x47
mov r9, rbx
lea r8, [rbp + 0x40]
movzx edx, byte [rsp + 0x34]
lea rcx, [rsp + 0x60]
call fcn.14002a670
nop
mov dword [rsp + 0x30], 0xcf
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x78]
mov rax, rdx
sub rax, rcx
cmp rax, 3
jb 0x14002deea
lea rax, [rcx + 3]
mov qword [rsp + 0x70], rax
lea rbx, [rsp + 0x60]
cmp rdx, 0x10
cmovae rbx, qword [rsp + 0x60]
add rbx, rcx
mov r8d, 3
lea rdx, [0x140060ba0]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + 3], 0
lea rax, [rsp + 0x60]
jmp 0x14002df0b
mov qword [rsp + 0x20], 3
lea r9, [0x140060ba0]
xor r8d, r8d
lea edx, [r8 + 3]
lea rcx, [rsp + 0x60]
call fcn.140009630
movups xmm0, xmmword [rax]
movups xmmword [rbp + 0x20], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp + 0x30], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], recv
mov byte [rax], 0
lea rax, [rbp + 0x20]
mov ebx, 0x1df
jmp 0x14002df47
lea rdx, [rsi + 0x208]
lea rcx, [rbp - 0x20]
call fcn.140009860
mov ebx, r15d
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], r14
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x30], xmm1
mov qword [rax + 0x10], r14
mov qword [rax + 0x18], recv
mov byte [rax], 0
test bl, 0x20
je 0x14002dfc7
and ebx, 0xffffffdf
mov rdx, qword [rbp - 8]
cmp rdx, 0x10
jb 0x14002dfb7
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002dfb2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002dfb2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140055590
mov qword [rbp - 0x10], r14
mov qword [rbp - 8], recv
mov byte [rbp - 0x20], 0
test bl, 0x10
je 0x14002e00e
and ebx, 0xffffffef
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x14002e00e
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e008
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002e008
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140055590
nop
test bl, 8
je 0x14002e069
and ebx, 0xfffffff7
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x14002e056
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e051
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002e051
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140055590
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], recv
mov byte [rsp + 0x60], 0
test bl, 4
je 0x14002e0b0
and ebx, 0xfffffffb
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x14002e0b0
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e0aa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002e0aa
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140055590
nop
test bl, 2
je 0x14002e106
and ebx, 0xfffffffd
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x14002e0f6
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e0f1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002e0f1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140055590
mov qword [rbp - 0x50], r14
mov qword [rbp - 0x48], recv
mov byte [rbp - 0x60], 0
test bl, 1
je 0x14002e159
mov rdx, qword [rbp + 0x18]
cmp rdx, 0x10
jb 0x14002e149
inc rdx
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e144
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002e144
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140055590
mov qword [rbp + 0x10], r14
mov qword [rbp + 0x18], recv
mov byte [rbp], 0
mov r8d, 0xfde9
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x80]
call fcn.14002e780
nop
mov edx, dword [rsi + 0xb0]
mov eax, dword [rbp - 0x70]
inc eax
add edx, eax
movsx r11, word [rsp + 0x48]
mov r9, qword [rbp - 0x70]
cmp edx, r11d
jl 0x14002e1fb
cmp byte [rsi + 0x128], 0
je 0x14002e1fb
mov qword [rsp + 0x38], recv
mov r8, qword [rsi + 0x228]
mov rdx, qword [rsi + 0xc0]
lea rcx, [rsi + 0xc0]
lea rax, [r8 + 0xf]
cmp rax, rdx
jb 0x14002e1d5
lea rax, [rsp + 0x38]
cmp rdx, 0xf
cmovb rax, rcx
sub rdx, qword [rax]
mov qword [rsi + 0x228], rdx
mov r8, rdx
jmp 0x14002e205
lea rcx, [r11 + r8]
lea rax, [r9 + 1]
add rax, rdx
cmp rax, rcx
jb 0x14002e205
mov rax, r9
sub rax, r11
lea r8, [rdx + 1]
add r8, rax
mov qword [rsi + 0x228], r8
jmp 0x14002e205
mov qword [rsi + 0x228], r14
mov r8, r14
lea rcx, [r9 + r8]
mov rdi, qword [rsi + 0xb0]
inc rdi
add rdi, rcx
cmp rdi, r11
cmovb rdi, r11
mov eax, 4
mul rdi
cmovo rax, r12
mov rcx, rax
call fcn.140055598
mov rbx, rax
mov rdx, rdi
test rdi, rdi
je 0x14002e30f
mov r10d, 0x7c
mov r11d, 0xfffa
nop dword [rax]
mov rcx, rdx
dec rdx
movzx eax, word [rsp + 0x50]
mov word [rbx + rdx*4 + 2], ax
mov r8, qword [rsi + 0x228]
cmp rdx, r8
jb 0x14002e301
mov r9, qword [rbp - 0x70]
test r8, r8
je 0x14002e29b
lea rax, [r9 + r8]
cmp rcx, rax
jne 0x14002e29b
mov word [rbx + rdx*4], r10w
movzx eax, word [rbx + rdx*4 + 2]
and ax, r11w
or ax, 0xa
mov word [rbx + rdx*4 + 2], ax
jmp 0x14002e306
lea rax, [r9 + r8]
cmp rdx, rax
jae 0x14002e2c8
lea rcx, [rbp - 0x80]
cmp qword [rbp - 0x68], 8
cmovae rcx, qword [rbp - 0x80]
mov rax, rdx
sub rax, r8
movzx eax, word [rcx + rax*2]
mov word [rbx + rdx*4], ax
or word [rbx + rdx*4 + 2], 8
jmp 0x14002e306
mov rcx, qword [rsi + 0xb0]
add rcx, r9
cmp rdx, rcx
jae 0x14002e301
cmp byte [rsi + 0x128], 0
je 0x14002e301
lea rcx, [rsi + 0xa0]
cmp qword [rcx + 0x18], 8
jb 0x14002e2f1
mov rcx, qword [rcx]
mov rax, rdx
sub rax, r9
movzx eax, word [rcx + rax*2]
mov word [rbx + rdx*4], ax
jmp 0x14002e306
mov word [rbx + rdx*4], r15w
test rdx, rdx
jne 0x14002e250
mov word [rsp + 0x40], r14w
movzx ecx, word [rsp + 0x4e]
mov word [rsp + 0x42], cx
movzx eax, word [rsp + 0x48]
mov word [rsp + 0x44], ax
mov word [rsp + 0x46], cx
movzx eax, word [rsi + 0x228]
mov word [rsp + 0x30], ax
mov word [rsp + 0x32], r14w
mov word [rsp + 0x38], di
mov word [rsp + 0x3a], r13w
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x30]
mov r8d, dword [rsp + 0x38]
mov rdx, rbx
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.KERNEL32.dll_WriteConsoleOutputW]
movzx eax, word [rsi + 0xc0]
sub ax, word [rsi + 0x228]
add ax, word [rbp - 0x70]
mov word [rsp + 0x38], ax
movzx eax, word [rsp + 0x4e]
mov word [rsp + 0x3a], ax
mov edx, dword [rsp + 0x38]
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov byte [rsi + 0x48], 0
test rbx, rbx
je 0x14002e3ad
mov rcx, rbx
call fcn.140055590
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x14002e3f0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e3eb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002e3eb
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140055590
mov qword [rbp - 0x70], r14
mov qword [rbp - 0x68], 7
mov word [rbp - 0x80], r14w
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x14002e43f
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e43a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002e43a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140055590
mov rcx, qword [rbp + 0x60]
xor rcx, rsp
call fcn.140055ba0
mov rbx, qword [rsp + 0x1c0]
add rsp, 0x170
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret