Function at 0x140003920
Capabilities:
Manipulate console buffer

Disassembly:
push rbx
push r15
sub rsp, 0x38
mov rbx, rcx
mov qword [rsp + 0x58], rbp
mov ecx, 0xfffffff5
mov qword [rsp + 0x68], rdi
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
xor r15d, r15d
mov rcx, rax
mov edx, r15d
mov dword [rsp + 0x50], r15d
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
lea rcx, [rbx + 0x10]
lea rdi, [rbx + 0x28]
cmp rdi, rcx
je 0x140003990
mov r9, qword [rcx]
movabs rax, 0x2aaaaaaaaaaaaaab
mov rcx, qword [rcx + 8]
sub rcx, r9
imul rcx
mov rcx, rdi
sar rdx, 1
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, r9
call fcn.140003d80
mov rcx, qword [rbx + 0x58]
mov rdx, qword [rdi + 8]
mov byte [rsp + 0x28], 0x43
mov eax, dword [rcx + 8]
mov dword [rsp + 0x20], eax
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x24], eax
cmp rdx, qword [rdi + 0x10]
je 0x1400039c9
movsd xmm0, qword [rsp + 0x20]
mov eax, dword [rsp + 0x28]
movsd qword [rdx], xmm0
mov dword [rdx + 8], eax
add qword [rdi + 8], 0xc
jmp 0x1400039d6
lea r8, [rsp + 0x20]
mov rcx, rdi
call fcn.140003fa0
mov r9, qword [rdi + 8]
mov r8, qword [rdi]
cmp r8, r9
je 0x140003a33
movsxd rcx, dword [r8]
test ecx, ecx
js 0x140003a2a
cmp ecx, dword [rbx + 0x40]
jge 0x140003a2a
movsxd rax, dword [r8 + 4]
test eax, eax
js 0x140003a2a
cmp eax, dword [rbx + 0x44]
jge 0x140003a2a
movzx edx, byte [r8 + 8]
cmp dl, 0x50
jne 0x140003a16
mov rdx, rax
mov rax, qword [rbx + 0x48]
mov rax, qword [rax + rdx*8]
mov byte [rcx + rax], 0x58
jmp 0x140003a2a
cmp dl, 0x43
jne 0x140003a2a
mov rdx, rax
mov rax, qword [rbx + 0x48]
mov rax, qword [rax + rdx*8]
mov byte [rcx + rax], 0x4f
add r8, 0xc
cmp r8, r9
jne 0x1400039e2
mov rcx, qword [rbx + 0x18]
mov edi, r15d
mov rax, qword [rbx + 0x48]
movsxd rdx, dword [rcx - 8]
movsxd rcx, dword [rcx - 0xc]
mov rax, qword [rax + rdx*8]
mov byte [rcx + rax], 0x40
mov eax, dword [rbx + 0x40]
add eax, 2
test eax, eax
jle 0x140003a7f
nop dword [rax + rax]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140006748]
call fcn.140002e60
mov eax, dword [rbx + 0x40]
inc edi
add eax, 2
cmp edi, eax
jl 0x140003a60
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140003030]
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 rcx, rax
lea rdx, [0x140006748]
call fcn.140002e60
mov ebp, r15d
cmp dword [rbx + 0x44], r15d
jle 0x140003b3a
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x30], r14
mov r14, r15
nop dword [rax]
mov edi, r15d
mov rsi, r15
cmp dword [rbx + 0x40], r15d
jle 0x140003af3
nop dword [rax]
mov rax, qword [rbx + 0x48]
mov rcx, qword [r14 + rax]
movzx edx, byte [rcx + rsi]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.140003bc0
inc edi
lea rsi, [rsi + 1]
cmp edi, dword [rbx + 0x40]
jl 0x140003ad0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140006748]
call fcn.140002e60
mov rcx, rax
lea rdx, [0x140003030]
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 rcx, rax
lea rdx, [0x140006748]
call fcn.140002e60
inc ebp
add r14, 8
cmp ebp, dword [rbx + 0x44]
jl 0x140003ac0
mov r14, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x60]
mov ecx, dword [rbx + 0x40]
mov edi, r15d
mov rbp, qword [rsp + 0x58]
lea eax, [rcx + 1]
test eax, eax
jle 0x140003b6f
nop dword [rax]
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [0x140006748]
call fcn.140002e60
mov ecx, dword [rbx + 0x40]
inc edi
lea eax, [rcx + 1]
cmp edi, eax
jl 0x140003b50
mov r10d, r15d
mov rdi, qword [rsp + 0x68]
cmp dword [rbx + 0x44], r15d
jle 0x140003bb8
mov r9, r15
mov edx, r15d
mov r8, r15
test ecx, ecx
jle 0x140003bab
nop word [rax + rax]
mov rax, qword [rbx + 0x48]
lea r8, [r8 + 1]
inc edx
mov rcx, qword [r9 + rax]
mov byte [r8 + rcx - 1], 0x20
mov ecx, dword [rbx + 0x40]
cmp edx, ecx
jl 0x140003b90
inc r10d
add r9, 8
cmp r10d, dword [rbx + 0x44]
jl 0x140003b80
add rsp, 0x38
pop r15
pop rbx
ret