Function at 0x140009680
Capabilities:
Manipulate console buffer

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov r12d, edx
mov rdi, rcx
lea r15, [0x14001fa00]
add r12, rcx
mov rcx, qword [0x14001f7b0]
lea rdx, [0x14001f9c0]
mov rsi, r15
xor bl, bl
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
mov r9d, dword [0x14001f9c4]
mov rcx, qword [0x14001f7b0]
lea r11, [rsp + 0x70]
lea rdx, [rsp + 0x78]
mov r8d, 1
mov qword [rsp + 0x20], r11
call qword [sym.imp.KERNEL32.dll_ReadConsoleOutputAttribute]
test eax, eax
jne 0x1400096f9
movzx edx, word [0x14001f9c8]
mov rcx, qword [0x14001f7b0]
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
movsx eax, word [0x14001f9c4]
xor ebp, ebp
mov dword [0x14001e534], eax
cmp dword [0x14001e528], ebp
je 0x140009740
cmp rdi, r12
jae 0x140009740
movzx ebx, byte [rdi]
cmp bl, 0x5b
jne 0x14000973a
mov rax, qword [0x14001f9e0]
mov byte [rax], bl
inc qword [0x14001f9e0]
inc rdi
mov dword [0x14001e52c], 1
mov dword [0x14001e528], ebp
lea r14, [0x14001f9bf]
cmp dword [0x14001e52c], ebp
je 0x140009804
cmp rdi, r12
jae 0x140009797
nop dword [rax + rax]
movsx ebx, byte [rdi]
mov ecx, ebx
call fcn.14000b510
test eax, eax
jne 0x140009797
mov rax, qword [0x14001f9e0]
cmp rax, r14
jbe 0x140009786
mov dword [0x14001e530], 1
jmp 0x14000978f
mov byte [rax], bl
inc qword [0x14001f9e0]
inc rdi
cmp rdi, r12
jb 0x140009760
movsx ecx, bl
call fcn.14000b510
mov ecx, ebp
test eax, eax
sete cl
mov dword [0x14001e52c], ecx
test ecx, ecx
jne 0x140009804
mov rdx, qword [0x14001f9e0]
cmp rdx, r14
jbe 0x1400097c9
mov eax, 1
mov dword [0x14001e530], eax
jmp 0x1400097e2
mov byte [rdx], bl
mov rdx, qword [0x14001f9e0]
mov eax, dword [0x14001e530]
inc rdx
mov qword [0x14001f9e0], rdx
inc rdi
test eax, eax
jne 0x140009804
lea rcx, [0x14001f7c0]
call fcn.140008f10
movsx r11d, word [0x14001f9c4]
mov dword [0x14001e534], r11d
cmp rdi, r12
jae 0x140009aea
mov qword [rsp + 0x80], r13
lea rcx, [0x140002000]
lea r13, [0x140020200]
movsx ebx, byte [rdi]
inc rdi
lea eax, [rbx - 7]
cmp eax, 0x14
ja case.0x140009841.11
cdqe
mov edx, dword [rcx + rax*4 + 0x7b00]
add rdx, rcx
jmp rdx
mov rcx, rsi
call fcn.140009410
mov rcx, qword [0x14001f7b0]
mov word [0x14001f9c4], bp
mov edx, dword [0x14001f9c4]
mov rsi, r15
mov dword [0x14001e534], ebp
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x140009ad2
mov rcx, rsi
call fcn.140009410
movzx eax, word [0x14001f9c6]
mov rsi, r15
inc ax
cmp ax, word [0x14001f9c2]
mov word [0x14001f9c6], ax
jl 0x1400098af
mov r8d, 1
or edx, 0xffffffff
xor ecx, ecx
call fcn.1400092a0
dec word [0x14001f9c6]
mov rcx, qword [0x14001f7b0]
mov word [0x14001f9c4], bp
mov edx, dword [0x14001f9c4]
mov dword [0x14001e534], ebp
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x140009ad2
mov rcx, rsi
call fcn.140009410
mov edx, 0x64
mov ecx, 0x7d0
mov rsi, r15
call qword [sym.imp.KERNEL32.dll_Beep]
jmp 0x140009ad2
mov rcx, rsi
call fcn.140009410
lea rax, [0x14001f7c1]
mov rsi, r15
mov dword [0x14001e530], ebp
mov byte [0x14001f7c0], 0x1b
mov qword [0x14001f9e0], rax
cmp rdi, r12
jae 0x140009a01
movzx ebx, byte [rdi]
cmp bl, 0x5b
jne 0x140009ad2
lea rax, [0x14001f7c2]
inc rdi
mov byte [0x14001f7c1], bl
mov qword [0x14001f9e0], rax
cmp rdi, r12
jae 0x140009987
nop dword [rax + rax]
movsx ebx, byte [rdi]
mov ecx, ebx
call fcn.14000b510
test eax, eax
jne 0x140009987
mov rax, qword [0x14001f9e0]
cmp rax, r14
jbe 0x140009976
mov dword [0x14001e530], 1
jmp 0x14000997f
mov byte [rax], bl
inc qword [0x14001f9e0]
inc rdi
cmp rdi, r12
jb 0x140009950
movsx ecx, bl
call fcn.14000b510
mov ecx, ebp
test eax, eax
sete cl
mov dword [0x14001e52c], ecx
test ecx, ecx
jne 0x140009ad2
mov rdx, qword [0x14001f9e0]
cmp rdx, r14
jbe 0x1400099bd
mov eax, 1
mov dword [0x14001e530], eax
jmp 0x1400099d6
mov byte [rdx], bl
mov rdx, qword [0x14001f9e0]
mov eax, dword [0x14001e530]
inc rdx
mov qword [0x14001f9e0], rdx
inc rdi
test eax, eax
jne 0x140009ad2
lea rcx, [0x14001f7c0]
call fcn.140008f10
movsx r11d, word [0x14001f9c4]
mov dword [0x14001e534], r11d
jmp 0x140009ad2
mov dword [0x14001e528], 1
jmp 0x140009ad2
mov rcx, rsi
call fcn.140009410
movzx eax, word [0x14001f9c4]
mov rsi, r15
test ax, ax
je 0x140009a33
dec ax
mov word [0x14001f9c4], ax
jmp 0x140009a5e
movzx eax, word [0x14001f9c6]
test ax, ax
je 0x140009ad2
dec ax
mov word [0x14001f9c6], ax
mov ax, word [0x14001f9c0]
dec ax
mov word [0x14001f9c4], ax
mov edx, dword [0x14001f9c4]
mov rcx, qword [0x14001f7b0]
cwde
mov dword [0x14001e534], eax
call qword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
jmp 0x140009ad2
mov ebp, dword [0x14001e534]
mov ecx, ebp
mov ebx, ebp
call fcn.140009de0
mov ebp, eax
mov dword [0x14001e534], eax
sub ebp, ebx
je 0x140009ad0
dec ebp
cmp rsi, r13
jb 0x140009aa7
mov rcx, rsi
call fcn.140009410
mov rsi, r15
mov byte [rsi], 0x20
inc rsi
test ebp, ebp
jne 0x140009a95
jmp 0x140009ad2
inc dword [0x14001e534]
cmp rsi, r13
jb 0x140009ac9
mov rcx, rsi
call fcn.140009410
mov rsi, r15
mov byte [rsi], bl
inc rsi
jmp 0x140009ad2
xor ebp, ebp
lea rcx, [0x140002000]
cmp rdi, r12
jb 0x140009823
mov r13, qword [rsp + 0x80]
mov rcx, rsi
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp fcn.140009410