Function at 0x1400190f0
Capabilities:
Manipulate console buffer

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp - 8], rax
cmp dword [0x140082cdc], 0
mov r12, r9
mov r15, r8
mov r14, rdx
mov rsi, rcx
jne 0x140019163
lea rax, [rdx - 1]
cmp rcx, rax
jae 0x140019163
lfence
lea rdi, [rcx + 1]
mov rcx, rdi
call fcn.140019940
mov rbx, rax
cmp rdi, rax
jne 0x14001915f
lfence
mov edx, 1
mov rcx, rdi
call fcn.140014a90
cdqe
add rax, rbx
jmp 0x1400196db
cmovb rsi, rbx
movzx eax, byte [rsi]
cmp eax, 0x1b
ja case.0x140019188.16
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x19724]
mov ecx, dword [rdx + rax*4 + 0x196f8]
add rcx, rdx
jmp rcx
inc rsi
jmp 0x1400196d8
mov edx, 0x190
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Beep]
inc rsi
jmp 0x1400196d8
inc rsi
xor edi, edi
cmp dword [0x14008425c], edi
jne 0x14001940b
call fcn.140014780
mov rcx, rax
lea rdx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x1400192df
movsx eax, word [rbp - 0x34]
test eax, eax
je 0x1400192df
call fcn.140014780
mov rcx, rax
lea rdx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x140019296
call fcn.140014780
mov rcx, rax
lea rdx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
mov eax, edi
je 0x140019217
movsx eax, word [rbp - 0x34]
dec ax
add ax, word [rbp - 0x16]
mov word [rbp - 0x40], ax
call fcn.140014780
mov rcx, rax
lea rdx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x14001923c
mov ecx, edi
jmp 0x140019246
movsx eax, word [rbp - 0x2c]
movsx ecx, word [rbp - 0x32]
sub ecx, eax
add cx, word [rbp - 0x14]
mov word [rbp - 0x3e], cx
call fcn.140014780
mov r9d, dword [rbp - 0x40]
mov rcx, rax
lea rax, [rbp - 0x3c]
mov r8d, 1
mov dl, 0x20
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputCharacterA]
call fcn.140014780
mov r9d, dword [rbp - 0x40]
mov rcx, rax
movzx edx, word [rbp - 0x18]
lea rax, [rbp - 0x3c]
mov r8d, 1
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_FillConsoleOutputAttribute]
call fcn.140014780
mov rcx, rax
lea rdx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x14001940b
movzx eax, word [rbp - 0x34]
dec ax
mov word [rbp - 0x40], ax
movzx eax, word [rbp - 0x32]
mov word [rbp - 0x3e], ax
call fcn.140014780
mov edx, dword [rbp - 0x40]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov dword [0x14008425c], edi
jmp 0x1400196d8
mov ebx, dword [0x1400a4e44]
dec ebx
call fcn.140014780
mov rcx, rax
lea rdx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
je 0x140019321
movzx eax, word [rbp - 0x32]
add bx, word [rbp - 0x34]
dec ax
mov word [rbp - 0x3e], ax
mov word [rbp - 0x40], bx
call fcn.140014780
mov edx, dword [rbp - 0x40]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov dword [rsp + 0x28], edi
lea r8, [0x14005d080]
mov r9d, 1
mov qword [rsp + 0x20], rdi
xor edx, edx
mov dword [rbp - 0x40], edi
mov ecx, 0xfde9
mov rbx, rdi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd r14, eax
test eax, eax
je 0x1400193ef
mov rcx, r14
add rcx, rcx
call fcn.14003d014
mov rbx, rax
test rax, rax
je 0x1400193ef
mov dword [rsp + 0x28], r14d
lea r8, [0x14005d080]
mov r9d, 1
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r14d, eax
test eax, eax
je 0x1400193ef
call fcn.140014780
test rax, rax
je 0x1400193d1
call fcn.140014780
mov rcx, rax
mov qword [rsp + 0x20], rdi
lea r9, [rbp - 0x40]
mov r8d, r14d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
mov rcx, rbx
call fcn.14003d000
mov dword [0x14008425c], edi
jmp 0x1400196d8
mov rcx, rbx
call fcn.14000e2b0
mov rcx, rbx
mov dword [rbp - 0x40], eax
call fcn.14003d000
mov dword [0x14008425c], edi
jmp 0x1400196d8
lea rcx, [0x14005d080]
call fcn.140014720
mov dword [rbp - 0x40], eax
test rbx, rbx
je 0x14001940b
mov rcx, rbx
call fcn.14003d000
mov dword [0x14008425c], edi
jmp 0x1400196d8
cmp dword [0x14008425c], 0
je 0x140019424
call fcn.140018f50
call fcn.140014780
mov rcx, rax
lea rdx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
xor edi, edi
test eax, eax
jne 0x140019443
mov ecx, 8
jmp 0x140019464
movsx eax, word [rbp - 0x34]
and eax, 0x80000007
jge 0x140019455
dec eax
or eax, 0xfffffff8
inc eax
mov ecx, 8
sub ecx, eax
test ecx, ecx
jle 0x14001953a
mov r15d, ecx
nop word [rax + rax]
mov dword [rsp + 0x28], edi
lea r8, [0x14005d080]
mov r9d, 1
mov qword [rsp + 0x20], rdi
xor edx, edx
mov dword [rbp - 0x40], edi
mov ecx, 0xfde9
mov rbx, rdi
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd r14, eax
test eax, eax
je 0x140019514
mov rcx, r14
add rcx, rcx
call fcn.14003d014
mov rbx, rax
test rax, rax
je 0x140019514
mov dword [rsp + 0x28], r14d
lea r8, [0x14005d080]
mov r9d, 1
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r14d, eax
test eax, eax
je 0x140019514
call fcn.140014780
test rax, rax
je 0x140019507
call fcn.140014780
mov rcx, rax
mov qword [rsp + 0x20], rdi
lea r9, [rbp - 0x40]
mov r8d, r14d
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_WriteConsoleW]
jmp 0x140019528
mov rcx, rbx
call fcn.14000e2b0
mov dword [rbp - 0x40], eax
jmp 0x140019528
lea rcx, [0x14005d080]
call fcn.140014720
mov dword [rbp - 0x40], eax
test rbx, rbx
je 0x140019530
mov rcx, rbx
call fcn.14003d000
sub r15, 1
jne 0x140019470
inc rsi
mov dword [0x140082d00], 1
mov dword [0x14008425c], edi
jmp 0x1400196d8
inc rsi
xor edi, edi
mov dword [0x140082d00], 1
mov dword [0x14008425c], edi
jmp 0x1400196d8
xor edx, edx
xor ecx, ecx
inc rsi
call fcn.1400151e0
call fcn.140014b90
jmp 0x140019555
inc rsi
mov dword [0x140082d00], 1
call fcn.140018f50
jmp 0x1400196d8
inc rsi
mov dword [0x14008428c], 1
jmp 0x1400196d8
xor edi, edi
mov dword [0x14008428c], edi
inc rsi
jmp 0x1400196d8
lea rax, [r14 - 1]
cmp rsi, rax
jae 0x1400196d8
cmp byte [rsi + 1], 0x1b
lea rbx, [rsi + 1]
mov rcx, rbx
jne 0x1400195e5
mov edx, 1
call fcn.140014a90
lea rax, [rsi + 1]
jmp 0x1400196db
lfence
mov r9, r12
mov r8, r15
mov rdx, r14
call fcn.140019940
cmp rax, rbx
jbe 0x1400196d8
mov rsi, rax
jmp 0x1400196d8
cmp dword [0x14008425c], 0
je 0x140019615
call fcn.140018f50
mov rbx, rsi
call fcn.140014780
mov rcx, rax
lea rdx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
jne 0x140019632
xor edi, edi
jmp 0x140019636
movsx edi, word [rbp - 0x34]
cmp rsi, r14
jae 0x14001968f
mov edx, dword [0x1400a4e44]
movzx ecx, byte [rbx]
cmp cl, 0x1b
je 0x14001968f
cmp cl, 0xf
jbe 0x14001968f
cmp cl, 0xff
je 0x14001968f
mov eax, edi
inc edi
cmp eax, edx
jge 0x14001968f
cmp cl, 0x7f
jbe 0x140019687
test cl, cl
jns 0x140019667
inc rbx
movzx eax, cl
and al, 0xc0
cmp al, 0xc0
jne 0x140019673
inc rbx
movzx eax, cl
and al, 0xe0
cmp al, 0xe0
jne 0x14001967f
inc rbx
and cl, 0xf0
cmp cl, 0xf0
jne 0x14001968a
inc rbx
cmp rbx, r14
jb 0x140019641
cmp dword [0x14008428c], 0
je 0x1400196ab
mov r8, rbx
mov edx, 0x7c
sub r8, rsi
mov rcx, rsi
call fcn.14004f880
sub ebx, esi
mov rcx, rsi
mov edx, ebx
call fcn.140014a90
movsxd rcx, eax
add rsi, rcx
cmp edi, dword [0x1400a4e44]
jl 0x1400196d8
test byte [0x140084254], 1
jne 0x1400196d8
mov dword [0x14008425c], 1
mov rax, rsi
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1400313f0
add rsp, 0x70
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret