Function at 0x1400964b0
Capabilities:
Encode data using xor

Disassembly:
push r12
push r14
sub rsp, 0xa8
mov rax, qword [0x1401e56c8]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rcx, rax
mov qword [rsp + 0x30], rax
mov edx, 7
mov r12, rax
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
mov rcx, qword [0x1401eca28]
xor r14d, r14d
mov rdx, qword [0x1401eca20]
sub rcx, rdx
sar rcx, 5
test rcx, rcx
je 0x14009676a
mov qword [rsp + 0xc0], rbx
lea r12d, [r14 + 0x1f]
mov qword [rsp + 0xc8], rbp
xor ebp, ebp
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0x98], r13
lea r13d, [r14 + 1]
mov qword [rsp + 0x90], r15
mov r15d, dword [reloc.WS2_32.dll_accept]
mov rsi, rbp
mov byte [rsp + 0x20], 0
shl rsi, 5
lea rcx, [rsp + 0x48]
add rsi, rdx
call fcn.140013bf0
mov ecx, 0xfffffff5
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov rcx, rax
lea rdx, [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx ecx, word [rsp + 0x72]
movsx edx, word [rsp + 0x76]
sub edx, ecx
mov rcx, rdi
movsxd rbx, edx
sub rbx, qword [rdi + 0x10]
inc rbx
shr rbx, 1
call fcn.140010730
movsxd rdx, ebx
lea rcx, [rsp + 0x38]
call qword [sym.imp.MSVCP140.dll_struct_std::_Smanip_long_long___int64_____cdecl_std::setw_long_long___int64__]
mov rbx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov rdx, qword [rbx]
movsxd rcx, dword [rdx + 4]
mov rdx, qword [rax + 8]
add rcx, rbx
call qword [rax]
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.140026bf0
cmp qword [rsi + 0x18], 0x10
mov r8, qword [rsi + 0x10]
jb 0x1400965e6
mov rsi, qword [rsi]
mov rdx, rsi
mov rcx, rax
call fcn.1400275f0
mov rcx, qword [0x1401eca28]
mov rdx, qword [0x1401eca20]
mov rax, rcx
sub rax, rdx
sar rax, 5
dec rax
cmp rbp, rax
jne 0x14009671f
cmp byte [0x1401c1613], 0
mov eax, dword [str.9__6]
mov dword [rsp + 0x28], eax
je 0x140096700
cmp r15d, 2
jl 0x1400966bc
movdqa xmm3, xmmword [0x1401c4b30]
movdqa xmm2, xmm3
movdqa xmm0, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x1401c4d50]
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x1401c4d50]
shufps xmm2, xmm0, 0xdd
movd xmm0, r13d
psrad xmm2, xmm0
movd xmm0, r12d
movdqa xmm1, xmm2
psrld xmm1, xmm0
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x1401c4be0]
psubd xmm3, xmm1
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
andps xmm2, xmmword [0x1401c4d00]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x1401c4d90]
movd xmm0, eax
xorps xmm2, xmm0
movd dword [rsp + 0x28], xmm2
jmp 0x140096700
lea r9, [rsp + 0x28]
xor r8d, r8d
nop dword [rax]
nop dword [rax + rax]
mov eax, 0x94f2095
lea r9, [r9 + 1]
imul r8d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x37
movzx eax, r8b
inc r8d
sub al, dl
add al, 0x33
xor byte [r9 - 1], al
cmp r8d, 4
jl 0x1400966d0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea rdx, [rsp + 0x28]
call fcn.140026bf0
mov rcx, qword [0x1401eca28]
mov rdx, qword [0x1401eca20]
inc r14d
sub rcx, rdx
mov ebp, r14d
sar rcx, 5
cmp rbp, rcx
jb 0x140096550
mov r15, qword [rsp + 0x90]
mov r13, qword [rsp + 0x98]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xc0]
mov r12, qword [rsp + 0x30]
mov edx, reloc.WS2_32.dll_listen
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14015bde0
add rsp, 0xa8
pop r14
pop r12
ret