Function at 0x140001590
Capabilities:
Manipulate console buffer

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x28
mov edx, dword [0x1400e0040]
mov ebx, 0x11
mov rcx, qword [0x1400e0048]
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov r13, qword [str._I_v_]
nop
lea rdx, [0x1400b500b]
mov r8d, 1
mov rcx, r13
call fcn.1400aa190
sub ebx, 1
jne 0x1400015c0
mov rax, qword [r13]
mov rax, qword [rax - 0x18]
mov r12, qword [rax + r13 + 0xf0]
test r12, r12
je 0x1400018cf
cmp byte [r12 + 0x38], 0
je 0x14000186b
movsx edx, byte [r12 + 0x43]
lea r14, [0x1400b500d]
mov rcx, r13
xor ebp, ebp
call fcn.14006eaa0
lea r12, [0x1400e0080]
mov rcx, rax
call fcn.14006ec90
xor esi, esi
nop word [rax + rax]
mov eax, 0x8001
bt rax, rsi
jb 0x1400017e0
cmp dword [0x1400e03b4], ebp
je 0x1400017b0
cmp dword [0x1400e005c], ebp
jne 0x14000165f
cmp dword [0x1400e0060], esi
je 0x140001820
mov edx, dword [0x1400e03b0]
xor ebx, ebx
xor eax, eax
lea rdi, [0x1400e0220]
lea r15, [0x1400b5015]
test edx, edx
jg 0x14000168c
jmp 0x140001800
add rbx, 1
cmp dword [0x1400e03b0], ebx
jle 0x1400016c0
cmp dword [rdi + rbx*4], esi
jne 0x140001680
cmp dword [r12 + rbx*4], ebp
jne 0x140001680
mov r8d, 1
mov rdx, r15
mov rcx, r13
call fcn.1400aa190
add rbx, 1
cmp dword [0x1400e03b0], ebx
mov eax, 1
jg 0x14000168c
nop dword [rax]
test al, al
je 0x140001800
add esi, 1
cmp esi, 0x10
jne 0x140001630
mov rax, qword [r13]
mov rax, qword [rax - 0x18]
mov rbx, qword [rax + r13 + 0xf0]
test rbx, rbx
je 0x1400018cf
cmp byte [rbx + 0x38], 0
je 0x14000183a
movsx edx, byte [rbx + 0x43]
mov rcx, r13
add ebp, 1
call fcn.14006eaa0
mov rcx, rax
call fcn.14006ec90
cmp ebp, 0xf
jne 0x140001625
mov ebx, 0x11
nop dword [rax]
lea rdx, [0x1400b500b]
mov r8d, 1
mov rcx, r13
call fcn.1400aa190
sub ebx, 1
jne 0x140001720
mov rax, qword [r13]
mov rax, qword [rax - 0x18]
mov r12, qword [rax + r13 + 0xf0]
test r12, r12
je 0x1400018cf
cmp byte [r12 + 0x38], 0
je 0x14000189d
movsx edx, byte [r12 + 0x43]
mov rcx, r13
call fcn.14006eaa0
mov rcx, rax
call fcn.14006ec90
mov rcx, r13
mov r8d, 7
lea rdx, [0x1400b5017]
call fcn.1400aa190
mov edx, dword [0x1400e0054]
mov rcx, r13
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp 0x140070b50
cmp dword [0x1400e03b8], esi
jne 0x14000164b
lea rdx, [0x1400b500f]
mov r8d, 1
mov rcx, r13
call fcn.1400aa190
jmp 0x1400016c8
mov r8d, 1
mov rdx, r14
mov rcx, r13
call fcn.1400aa190
jmp 0x14000163f
lea rdx, [0x1400b5011]
mov r8d, 1
mov rcx, r13
call fcn.1400aa190
jmp 0x1400016c8
lea rdx, [0x1400b5013]
mov r8d, 1
mov rcx, r13
call fcn.1400aa190
jmp 0x1400016c8
mov rcx, rbx
call fcn.1400263c0
mov rax, qword [rbx]
mov edx, 0xa
lea rcx, [0x1400266c0]
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x1400016fb
mov rcx, rbx
call rax
movsx edx, al
jmp 0x1400016fb
mov rcx, r12
call fcn.1400263c0
mov rax, qword [r12]
mov edx, 0xa
lea rcx, [0x1400266c0]
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x140001605
mov rcx, r12
call rax
movsx edx, al
jmp 0x140001605
mov rcx, r12
call fcn.1400263c0
mov rax, qword [r12]
mov edx, 0xa
lea rcx, [0x1400266c0]
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x140001765
mov rcx, r12
call rax
movsx edx, al
jmp 0x140001765
call fcn.1400b0a80
nop
nop word cs:[rax + rax]
push r15
push r14
push r13
push r12
push rsi
push rbx
sub rsp, 0x68
lea r14, [rsp + 0x50]
mov r12, rcx
mov esi, edx
mov rdx, rcx
mov rcx, r14
call fcn.14006f150
cmp byte [rsp + 0x50], 0
je 0x14006fc85
mov rax, qword [r12]
mov rbx, qword [rax - 0x18]
add rbx, r12
mov r13, qword [rbx + 0xf8]
test r13, r13
je 0x14006fd6a
cmp byte [rbx + 0xe1], 0
je 0x14006fcd8
movsx ecx, byte [rbx + 0xe0]
mov rdx, qword [rbx + 0xe8]
lea r10, [rsp + 0x40]
xor eax, eax
mov r9, rbx
lea r8, [rsp + 0x30]
test rdx, rdx
mov qword [rsp + 0x30], rdx
mov rdx, r13
sete al
mov qword [rsp + 0x38], rax
mov rax, qword [r13]
mov dword [rsp + 0x20], ecx
mov rcx, r10
mov dword [rsp + 0x28], esi
call qword [rax + 0x18]
cmp byte [rsp + 0x48], 0
je 0x14006fc85
mov rax, qword [r12]
mov rcx, qword [rax - 0x18]
add rcx, r12
mov edx, dword [rcx + 0x20]
or edx, 1
call fcn.1400a8330
mov rbx, qword [rsp + 0x58]
mov rax, qword [rbx]
mov r13, qword [rax - 0x18]
add r13, rbx
test byte [r13 + 0x19], 0x20
je 0x14006fcbf
call fcn.1400ab130
test al, al
jne 0x14006fcbf
mov rcx, qword [r13 + 0xe8]
test rcx, rcx
je 0x14006fcbf
mov rax, qword [rcx]
call qword [rax + 0x30]
cmp eax, 0xffffffff
je 0x14006fd50
mov rax, r12
add rsp, 0x68
pop rbx
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r15, qword [rbx + 0xf0]
test r15, r15
je 0x14006fd6f
cmp byte [r15 + 0x38], 0
je 0x14006fd18
movsx ecx, byte [r15 + 0x59]
mov eax, ecx
mov byte [rbx + 0xe0], al
mov rax, qword [r12]
mov byte [rbx + 0xe1], 1
mov rbx, qword [rax - 0x18]
add rbx, r12
jmp 0x14006fc2d
mov rcx, r15
call fcn.1400263c0
mov rax, qword [r15]
lea rdx, [0x1400266c0]
mov ecx, 0x20
mov r8, qword [rax + 0x30]
mov eax, 0x20
cmp r8, rdx
je 0x14006fcf6
mov edx, 0x20
mov rcx, r15
call r8
movsx ecx, al
jmp 0x14006fcf6
mov rax, qword [rbx]
mov rcx, qword [rax - 0x18]
add rcx, rbx
mov edx, dword [rcx + 0x20]
or edx, 1
call fcn.1400a8330
jmp 0x14006fcbf
call fcn.1400b0a80
call fcn.1400b0a80
sub rdx, 1
mov rcx, rax
jne 0x14006fdaf
call fcn.1400afe70
mov rax, qword [r12]
mov edx, 1
mov rcx, qword [rax - 0x18]
add rcx, r12
call fcn.1400a7ff0
call fcn.1400b0430
mov r12, rax
mov rcx, r14
call fcn.14006f230
mov rcx, r12
call fcn.14000c910
call fcn.1400afe70
mov rax, qword [r12]
mov edx, 1
mov rcx, qword [rax - 0x18]
add rcx, r12
call fcn.1400a7ff0
call fcn.1400b0050
jmp 0x14006fc85
jmp 0x14006fbd0