Function at 0x1400324f8
Capabilities:
Manipulate console buffer

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
movapd xmmword [rsp + 0x150], xmm11
movapd xmmword [rsp + 0x140], xmm10
movapd xmmword [rsp + 0x130], xmm9
movapd xmmword [rsp + 0x120], xmm8
movdqa xmmword [rsp + 0x110], xmm7
movapd xmmword [rsp + 0x100], xmm6
mov r13d, dword [rcx + 8]
lea edx, [r13 - 0x3b9aca00]
cmp edx, 3
mov eax, 1
cmovb eax, edx
test eax, eax
je 0x140032593
cmp eax, 1
jne 0x14003263c
mov rdi, qword [rcx]
mov rsi, qword [rcx + 0x10]
mov bl, byte [rcx + 0x18]
mov bpl, byte [rcx + 0x28]
and qword [rsp + 0xb8], 0
call fcn.14008af70
test al, al
je 0x140032660
xor edi, edi
jmp 0x140032c22
mov r15, qword [rcx + 0x10]
mov rsi, qword [rcx + 0x18]
mov r13, qword [rcx + 0x20]
call fcn.14008af70
test al, al
jne 0x140032659
mov rax, qword [r13 + 0x18]
mov qword [rsp + 0x58], rsi
mov rcx, qword [rsi]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x40], rax
test rax, rax
je 0x140032817
cmp byte [r13 + 0x20], 0
je 0x140032817
mov rcx, qword [r15]
mov dl, byte [r15 + 8]
mov r8, qword [rsp + 0x28]
call fcn.1400110f5
mov rdi, rax
test rax, rax
jne 0x140032c2c
xor eax, eax
mov rcx, qword [rsp + 0x28]
sub rcx, qword [rsp + 0x40]
mov qword [rsp + 0x28], rcx
jbe 0x140032c98
cmp byte [r13 + 0x21], 0
je 0x140032c98
mov rax, qword [rsp + 0x28]
lea rsi, [rax + 1]
dec rsi
je 0x140032c93
mov rcx, qword [r15]
call fcn.140010f46
mov rdi, rax
test rax, rax
je 0x14003261e
jmp 0x140032c2c
mov rsi, qword [rcx + 0x10]
mov r13, qword [rcx + 0x18]
mov rdi, qword [rcx + 0x20]
mov r15, qword [rcx + 0x28]
call fcn.14008af70
test al, al
je 0x140032719
xor edi, edi
jmp 0x140032c2c
mov byte [rsp + 0x30], bpl
mov qword [rsp + 0x40], rdi
mov byte [rsp + 0x38], bl
lea rcx, [rsi + 0x10]
mov qword [rsp + 0x28], rcx
call fcn.140032180
movzx eax, ax
cvtsi2sd xmm6, eax
lea r15, [rsp + 0x98]
mov qword [r15], 8
xorpd xmm0, xmm0
movupd xmmword [r15 + 8], xmm0
mov rdi, qword [rsi + 0xa0]
mov rbp, qword [rsi + 0xb0]
shl rbp, 3
xor r14d, r14d
xor ebx, ebx
cmp rbp, r14
je 0x1400327a4
mov r12, qword [rdi + r14]
cmp qword [rsi + 0x80], r12
jbe 0x1400330db
mov rax, qword [rsi + 0x70]
imul rcx, r12, 0x30
cmp byte [rax + rcx + 0x28], 0
je 0x1400327a4
add rax, rcx
cmp byte [rax + 0x21], 2
jne 0x1400326ed
xor eax, eax
jmp 0x1400326fe
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0x18]
movapd xmm2, xmm6
call fcn.140035a06
add qword [rsi + 0xd0], rax
add rbx, rax
mov rcx, r15
mov rdx, r12
call fcn.140030b1f
add r14, 8
jmp 0x1400326b3
mov rax, qword [r15 + 0x18]
mov qword [rsp + 0x50], rdi
mov rdx, qword [rdi]
mov qword [rsp + 0x30], rax
test rax, rax
mov qword [rsp + 0x28], rdx
je 0x140032a40
cmp byte [r15 + 0x20], 0
je 0x140032a40
mov rcx, rsi
call qword [r13 + 0x40]
mov rdi, rax
test rax, rax
jne 0x140032c2c
xor eax, eax
mov rcx, qword [rsp + 0x28]
sub rcx, qword [rsp + 0x30]
jbe 0x140032ece
cmp byte [r15 + 0x21], 0
je 0x140032ece
mov rbx, rcx
lea r12, [rcx + 1]
lea r14, [0x1400f6a40]
dec r12
je 0x140032ecb
mov rcx, rsi
mov rdx, r14
xor r8d, r8d
call qword [r13 + 0x60]
mov rdi, rax
test rax, rax
je 0x140032781
jmp 0x140032c2c
cmp byte [rsp + 0x30], 0
setne dil
mov rcx, qword [rsi + 0xb8]
mov rdx, qword [rsi + 0xc8]
movapd xmm2, xmm6
call fcn.140035a06
mov r12, rax
test rax, rax
setne r8b
or r8b, dil
mov dword [rsp + 0x20], r13d
lea r15, [rsp + 0x68]
mov rcx, r15
mov rdx, qword [rsp + 0x28]
mov r9, qword [rsp + 0x40]
call fcn.1400321fb
cmp dword [r15 + 8], 0x3b9aca03
jne 0x140032aae
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
call fcn.140074af5
xor edi, edi
jmp 0x140032c1e
xor r8d, r8d
mov rax, qword [rsp + 0x28]
sub rax, 1
cmovae r8, rax
mov rcx, qword [r15]
mov dl, byte [r15 + 8]
mov qword [rsp + 0x30], r8
call fcn.1400110f5
mov rdi, rax
test rax, rax
jne 0x140032c2c
lea rbp, [rsp + 0x68]
lea r14, str._re_2K
mov rsi, qword [rsp + 0x28]
mov qword [rsp + 0x38], r13
mov rbx, rsi
sub rbx, 1
jb 0x140032c77
cmp byte [r15 + 8], 0
je 0x14003288d
mov rcx, qword [r15]
mov r8d, 5
mov rdx, r14
call fcn.140010e12
test rax, rax
je 0x140032939
jmp 0x14003306c
mov rcx, qword [r15]
call fcn.140010a20
mov rcx, rbp
mov rdx, rax
call fcn.1400110a3
cmp qword [rsp + 0x68], 0
je 0x140032939
movzx eax, word [rsp + 0x86]
sub ax, word [rsp + 0x82]
mov rdi, qword [rsp + 0x70]
and dword [rsp + 0xd0], 0
mov r14, rbp
movzx ebp, word [rsp + 0x80]
movzx r13d, word [rsp + 0x7e]
movsx r12d, ax
shl r13d, 0x10
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov dl, 0x20
mov r8d, r12d
mov r9d, r13d
call qword [sym.imp.kernel32.dll_FillConsoleOutputCharacterA]
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov rcx, rdi
mov edx, ebp
mov rbp, r14
lea r14, str._re_2K
mov r8d, r12d
mov r9d, r13d
call qword [sym.imp.kernel32.dll_FillConsoleOutputAttribute]
mov rcx, rdi
mov edx, r13d
mov r13, qword [rsp + 0x38]
call qword [sym.imp.kernel32.dll_SetConsoleCursorPosition]
cmp rsi, 1
mov rsi, rbx
je 0x14003285a
cmp byte [r15 + 8], 0
je 0x1400329ff
mov eax, 1
mov qword [rsp + 0xb8], rax
lea rcx, [0x1400a5028]
mov qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], 2
and qword [rsp + 0x88], 0
lea rcx, [rsp + 0xb8]
mov qword [rsp + 0x98], rcx
lea rcx, [fcn.140017267]
mov qword [rsp + 0xa0], rcx
lea rcx, [rsp + 0x98]
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0xd0]
mov rdx, rbp
call fcn.14001105c
mov r12, qword [rsp + 0xd0]
mov r8, qword [rsp + 0xe0]
mov rcx, qword [r15]
mov rdx, r12
call fcn.140010e12
mov rdi, rax
mov rdx, qword [rsp + 0xd8]
mov rcx, r12
call fcn.14000cbda
mov rsi, rbx
test rdi, rdi
je 0x14003285a
jmp 0x140032c2c
mov rcx, qword [r15]
call fcn.140010a20
mov rcx, rbp
mov rdx, rax
call fcn.1400110a3
cmp qword [rsp + 0x68], 0
je 0x140032a38
movsx r8, word [rsp + 0x7e]
inc r8
mov rcx, qword [r15]
mov dl, byte [r15 + 8]
call fcn.1400111d2
test rax, rax
jne 0x14003306c
mov rsi, rbx
jmp 0x14003285a
xor r14d, r14d
mov rax, rdx
sub rax, 1
cmovae r14, rax
mov r12, qword [r13 + 0x40]
mov rcx, rsi
mov rdx, r14
call r12
mov rdi, rax
test rax, rax
jne 0x140032c2c
mov rbx, qword [rsp + 0x28]
mov rbp, rbx
mov rcx, rsi
sub rbp, 1
jb 0x140032c88
call qword [r13 + 0x70]
test rax, rax
jne 0x14003306c
cmp rbx, 1
mov rbx, rbp
je 0x140032a6c
mov edx, 1
mov rcx, rsi
call qword [r13 + 0x48]
mov rdi, rax
mov rbx, rbp
test rax, rax
je 0x140032a6c
jmp 0x140032c2c
movupd xmm0, xmmword [rsp + 0x68]
movupd xmm1, xmmword [rsp + 0x78]
movupd xmm2, xmmword [rsp + 0x88]
lea rcx, [rsp + 0xd0]
movapd xmmword [rcx + 0x20], xmm2
movapd xmmword [rcx + 0x10], xmm1
movapd xmmword [rcx], xmm0
call fcn.14003230f
mov rdi, rax
mov r15, rdx
mov qword [rax], r12
mov al, byte [rsi + 0xd9]
mov byte [rdi + 0x21], al
mov r13, qword [rsi + 0xb8]
mov rbp, qword [rsi + 0xc8]
lea r12, [rdi + 8]
mov rcx, r12
mov rdx, rbp
call fcn.14002fdd9
mov r14, qword [rdi + 0x18]
imul rcx, r14, 0x18
add rcx, qword [rdi + 8]
imul r8, rbp, 0x18
mov rdx, r13
call sub.VCRUNTIME140.dll_memcpy
add r14, rbp
mov qword [rdi + 0x18], r14
and qword [rsi + 0xc8], 0
mov r14, qword [rsi + 0xa0]
mov r13, qword [rsi + 0xb0]
shl r13, 3
xor ebp, ebp
cmp r13, rbp
je 0x140032b86
mov rcx, qword [r14 + rbp]
cmp qword [rsi + 0x80], rcx
jbe 0x1400330db
mov rax, qword [rsi + 0x70]
imul rcx, rcx, 0x30
cmp byte [rax + rcx + 0x21], 2
je 0x140032b80
add rax, rcx
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x18]
mov rcx, r12
call fcn.140035b2a
add rbp, 8
jmp 0x140032b48
mov rcx, rdi
mov rdx, r15
call fcn.1400323ee
lea rcx, [rsp + 0xd0]
call fcn.1400324f8
mov rdi, rax
mov r15, qword [rsp + 0x98]
mov r12, qword [rsp + 0xa0]
mov r14, qword [rsp + 0xa8]
shl r14, 3
xor r13d, r13d
mov rbp, qword [rsp + 0x28]
cmp r14, r13
je 0x140032bdc
mov rdx, qword [r15 + r13]
mov rcx, rbp
call fcn.140030a23
add r13, 8
jmp 0x140032bc5
mov rcx, r15
mov rdx, r12
call fcn.140074af5
mov rax, qword [rbp]
test rax, rax
je 0x140032bf5
cmp eax, 3
jne 0x140032c06
mov rax, qword [rsi + 0x18]
xor ecx, ecx
sub rax, rbx
cmovae rcx, rax
mov qword [rsi + 0x18], rcx
cmp qword [rsp + 0xb8], 0
je 0x140032c1e
lea rcx, [rsp + 0xb8]
call fcn.1400308ea
mov bl, byte [rsp + 0x38]
mov rcx, rsi
mov edx, ebx
call fcn.140041e0b
mov rax, rdi
movaps xmm6, xmmword [rsp + 0x100]
movaps xmm7, xmmword [rsp + 0x110]
movaps xmm8, xmmword [rsp + 0x120]
movaps xmm9, xmmword [rsp + 0x130]
movaps xmm10, xmmword [rsp + 0x140]
movaps xmm11, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [r15]
mov dl, byte [r15 + 8]
mov r8, qword [rsp + 0x30]
jmp 0x1400325e2
mov rdx, r14
call r12
jmp 0x14003274a
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x48], rax
mov rcx, qword [r15]
call fcn.1400359ad
movzx eax, ax
mov qword [rsp + 0x50], rax
mov rcx, qword [r15]
call fcn.1400359ad
movzx ecx, dx
mov rax, qword [r13]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x60], rcx
cvtsi2sd xmm6, ecx
mov rbp, qword [r13 + 8]
mov rax, qword [rsp + 0x40]
imul rcx, rax, 0x18
mov qword [rsp + 0x38], rcx
dec rax
mov qword [rsp + 0x40], rax
xor r13d, r13d
movdqa xmm7, xmmword [0x1400a36e0]
movapd xmm8, xmmword [0x1400a36f0]
movsd xmm9, qword [0x1400a36c0]
xorpd xmm10, xmm10
movsd xmm11, qword [0x1400a36c8]
xor r12d, r12d
xor eax, eax
mov qword [rsp + 0x28], rax
xor esi, esi
cmp qword [rsp + 0x38], r13
je 0x140032e2b
mov rcx, qword [rbp + r13]
mov rdx, qword [rbp + r13 + 0x10]
call fcn.1400112b5
mov rbx, rax
mov rdi, qword [rbp + r13 + 0x10]
test rdi, rdi
je 0x140032d8e
movq xmm1, rbx
punpckldq xmm1, xmm7
subpd xmm1, xmm8
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
divsd xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
movapd xmm1, xmm0
subsd xmm1, xmm9
ucomisd xmm0, xmm10
jb 0x140032d96
cvttsd2si rcx, xmm0
mov rdx, rcx
sar rdx, 0x3f
cvttsd2si rax, xmm1
and rax, rdx
or rax, rcx
jmp 0x140032d98
mov r14d, 1
jmp 0x140032db1
xor eax, eax
ucomisd xmm0, xmm11
mov r14, 0xffffffffffffffff
ja 0x140032da9
mov r14, rax
cmp r14, 1
adc r14, 0
add r14, qword [rsp + 0x28]
cmp qword [rsp + 0x30], r12
ja 0x140032dcc
mov rax, r14
sub rax, qword [rsp + 0x30]
cmp rax, qword [rsp + 0x50]
ja 0x140032e2b
test r12, r12
je 0x140032de7
mov rcx, qword [r15]
call fcn.140010f46
test rax, rax
jne 0x14003306c
mov rdi, qword [rbp + r13 + 0x10]
mov rdx, qword [rbp + r13]
mov rcx, qword [r15]
mov r8, rdi
call fcn.140010e12
test rax, rax
jne 0x14003306c
mov rax, qword [rsp + 0x60]
sub rax, rbx
mov ecx, 0
cmovae rcx, rax
cmp qword [rsp + 0x40], r12
cmove rsi, rcx
add r13, 0x18
inc r12
mov qword [rsp + 0x28], r14
jmp 0x140032d1b
lea rbx, [rsp + 0x68]
mov rcx, rbx
mov rdx, rsi
call fcn.14000d3a1
mov rsi, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, qword [r15]
mov rdx, rsi
call fcn.140010e12
mov rdi, rax
mov rdx, qword [rbx + 8]
mov rcx, rsi
call fcn.14000cbda
test rdi, rdi
jne 0x140032c2c
mov rdx, qword [r15]
cmp qword [rdx + 0x10], 0
je 0x1400330ee
add rdx, 0x18
lea rsi, [rsp + 0x68]
mov rcx, rsi
call fcn.140029922
cmp qword [rsi], 0
jne 0x1400330db
mov rsi, qword [rsp + 0x70]
mov bl, byte [rsp + 0x78]
mov r8, qword [rsi + 0x20]
test r8, r8
je 0x1400330e4
mov rdx, qword [rsi + 0x10]
mov rcx, qword [r15]
call fcn.140010e8c
test rax, rax
je 0x1400330df
mov rdi, rax
mov rcx, rsi
mov edx, ebx
call fcn.14000fc68
jmp 0x140032c2c
mov rax, rbx
mov qword [rsp + 0xb0], rax
mov rcx, rsi
call qword [r13 + 0x38]
movzx eax, ax
mov qword [rsp + 0x48], rax
mov rcx, rsi
call qword [r13 + 0x30]
movzx ecx, ax
mov rax, qword [r15]
mov qword [rsp + 0x38], rax
mov r12, qword [r15 + 8]
mov qword [rsp + 0x58], rcx
cvtsi2sd xmm6, ecx
mov rax, qword [rsp + 0x30]
imul rcx, rax, 0x18
mov qword [rsp + 0x60], rcx
dec rax
mov qword [rsp + 0x30], rax
xor ebx, ebx
movdqa xmm7, xmmword [0x1400a36e0]
movapd xmm8, xmmword [0x1400a36f0]
movsd xmm9, qword [0x1400a36c0]
xorpd xmm10, xmm10
movsd xmm11, qword [0x1400a36c8]
xor ebp, ebp
xor eax, eax
mov qword [rsp + 0x28], rax
xor eax, eax
mov qword [rsp + 0x40], rax
cmp qword [rsp + 0x60], rbx
je 0x140033074
mov rcx, qword [r12 + rbx]
mov rdx, qword [r12 + rbx + 0x10]
call fcn.1400112b5
mov r15, rax
mov rdi, qword [r12 + rbx + 0x10]
test rdi, rdi
je 0x140032fc6
movq xmm1, r15
punpckldq xmm1, xmm7
subpd xmm1, xmm8
movapd xmm0, xmm1
unpckhpd xmm0, xmm1
addsd xmm0, xmm1
divsd xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_ceil
movapd xmm1, xmm0
subsd xmm1, xmm9
ucomisd xmm0, xmm10
jb 0x140032fce
cvttsd2si rcx, xmm0
mov rdx, rcx
sar rdx, 0x3f
cvttsd2si rax, xmm1
and rax, rdx
or rax, rcx
jmp 0x140032fd0
mov r14d, 1
jmp 0x140032fe9
xor eax, eax
ucomisd xmm0, xmm11
mov r14, 0xffffffffffffffff
ja 0x140032fe1
mov r14, rax
cmp r14, 1
adc r14, 0
add r14, qword [rsp + 0x28]
cmp qword [rsp + 0x38], rbp
ja 0x140033004
mov rax, r14
sub rax, qword [rsp + 0x38]
cmp rax, qword [rsp + 0x48]
ja 0x140033074
test rbp, rbp
je 0x140033024
mov rcx, rsi
lea rdx, [0x1400f6a40]
xor r8d, r8d
call qword [r13 + 0x60]
test rax, rax
jne 0x14003306c
mov rdi, qword [r12 + rbx + 0x10]
mov rdx, qword [r12 + rbx]
mov rcx, rsi
mov r8, rdi
call qword [r13 + 0x68]
test rax, rax
jne 0x14003306c
mov rax, qword [rsp + 0x58]
sub rax, r15
mov ecx, 0
cmovae rcx, rax
cmp qword [rsp + 0x30], rbp
mov rax, qword [rsp + 0x40]
cmove rax, rcx
mov qword [rsp + 0x40], rax
add rbx, 0x18
inc rbp
mov qword [rsp + 0x28], r14
jmp 0x140032f54
mov rdi, rax
jmp 0x140032c2c
lea r15, [rsp + 0x68]
mov rcx, r15
mov rdx, qword [rsp + 0x40]
call fcn.14000d3a1
mov rbx, qword [r15]
mov r8, qword [r15 + 0x10]
mov rcx, rsi
mov rdx, rbx
call qword [r13 + 0x68]
mov rdi, rax
mov rdx, qword [r15 + 8]
mov rcx, rbx
call fcn.14000cbda
test rdi, rdi
jne 0x140032c2c
mov rcx, rsi
call qword [r13 + 0x78]
mov rdi, rax
test rax, rax
jne 0x140032c2c
mov rcx, qword [rsp + 0xb0]
sub rcx, qword [rsp + 0x38]
add rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x50]
jmp 0x140033102
ud2
and qword [rsi + 0x20], 0
mov rcx, rsi
mov edx, ebx
call fcn.14000fc68
mov rcx, qword [rsp + 0x48]
sub rcx, qword [rsp + 0x30]
add rcx, qword [rsp + 0x28]
mov rax, qword [rsp + 0x58]
mov qword [rax], rcx
jmp 0x140032659