Function at 0x14013f920
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x40
movdqa xmmword [rsp + 0x30], xmm9
movdqa xmmword [rsp + 0x20], xmm8
movdqa xmmword [rsp + 0x10], xmm7
movdqa xmmword [rsp], xmm6
test rdx, rdx
je 0x14013f995
mov r8, rcx
cmp rdx, 7
jbe 0x14013f99f
movabs rsi, 0x7f7f7f7f7f7f7f7f
movabs rdi, 0xa0a0a0a0a0a0a0a
movabs r10, 0xff00ff00ff00ff
movabs r9, 0x1000100010001
cmp rdx, 0x7f8
jae 0x14013fa37
xor r11d, r11d
xor ecx, ecx
jmp 0x14013fba7
mov eax, 1
jmp 0x14013fd3d
xor eax, eax
cmp byte [r8], 0xa
sete al
cmp rdx, 1
je 0x14013fd3a
xor ecx, ecx
cmp byte [r8 + 1], 0xa
sete cl
add rax, rcx
cmp rdx, 2
je 0x14013fd3a
xor ecx, ecx
cmp byte [r8 + 2], 0xa
sete cl
add rax, rcx
cmp rdx, 3
je 0x14013fd3a
xor ecx, ecx
cmp byte [r8 + 3], 0xa
sete cl
add rax, rcx
cmp rdx, 4
je 0x14013fd3a
xor ecx, ecx
cmp byte [r8 + 4], 0xa
sete cl
add rax, rcx
cmp rdx, 5
je 0x14013fd3a
xor ecx, ecx
cmp byte [r8 + 5], 0xa
sete cl
add rax, rcx
cmp rdx, 6
je 0x14013fd3a
xor ecx, ecx
cmp byte [r8 + 6], 0xa
sete cl
add rax, rcx
jmp 0x14013fd3a
xor eax, eax
movdqa xmm0, xmmword [0x1401bd960]
movdqa xmm1, xmmword [0x1401bd870]
pcmpeqd xmm2, xmm2
movdqa xmm3, xmmword [0x1401bd940]
movabs rbx, 0x101010101010101
mov r14, r8
xor r11d, r11d
nop word cs:[rax + rax]
pxor xmm4, xmm4
mov ecx, 2
pxor xmm5, xmm5
nop dword [rax]
movdqu xmm6, xmmword [r14 + rcx*8 - 0x10]
movdqu xmm7, xmmword [r14 + rcx*8]
movdqa xmm8, xmm6
pand xmm8, xmm0
movdqa xmm9, xmm7
pand xmm9, xmm0
pxor xmm8, xmm1
pxor xmm9, xmm1
paddq xmm8, xmm0
paddq xmm9, xmm0
por xmm8, xmm6
por xmm9, xmm7
pxor xmm8, xmm2
psrlq xmm8, 7
pxor xmm9, xmm2
psrlq xmm9, 7
pand xmm8, xmm3
paddq xmm4, xmm8
pand xmm9, xmm3
paddq xmm5, xmm9
add rcx, 4
cmp rcx, 0xfe
jne 0x14013fa80
paddq xmm5, xmm4
pshufd xmm4, xmm5, 0xee
paddq xmm4, xmm5
movq r15, xmm4
mov r12, qword [r8 + rax + 0x7e0]
mov rcx, r12
and rcx, rsi
xor rcx, rdi
add rcx, rsi
or rcx, r12
not rcx
shr rcx, 7
and rcx, rbx
add rcx, r15
movdqu xmm4, xmmword [r8 + rax + 0x7e8]
movdqa xmm5, xmm4
pand xmm5, xmm0
pxor xmm5, xmm1
paddq xmm5, xmm0
por xmm5, xmm4
pxor xmm5, xmm2
psrlq xmm5, 7
pand xmm5, xmm3
movq r15, xmm5
add r15, rcx
pshufd xmm4, xmm5, 0xee
movq r12, xmm4
add r12, r15
lea rcx, [rax + 0x7f8]
mov r15, r12
and r15, r10
shr r12, 8
and r12, r10
add r12, r15
imul r12, r9
shr r12, 0x30
add r11, r12
add rax, 0xff0
add r14, 0x7f8
cmp rax, rdx
mov rax, rcx
jbe 0x14013fa70
mov rax, rdx
sub rax, rcx
cmp rax, 8
jae 0x14013fbba
xor eax, eax
jmp 0x14013fcd8
mov rbx, rax
shr rbx, 3
cmp rax, 0x20
jae 0x14013fbd1
xor eax, eax
xor r14d, r14d
jmp 0x14013fc99
mov r14, rbx
and r14, 0xfffffffffffffffc
lea rax, [rcx + r8]
add rax, 0x10
pxor xmm0, xmm0
xor r15d, r15d
movdqa xmm1, xmmword [0x1401bd960]
movdqa xmm3, xmmword [0x1401bd870]
pcmpeqd xmm4, xmm4
movdqa xmm5, xmmword [0x1401bd940]
pxor xmm2, xmm2
nop word [rax + rax]
movdqu xmm6, xmmword [rax + r15*8 - 0x10]
movdqu xmm7, xmmword [rax + r15*8]
movdqa xmm8, xmm6
pand xmm8, xmm1
movdqa xmm9, xmm7
pand xmm9, xmm1
pxor xmm8, xmm3
pxor xmm9, xmm3
paddq xmm8, xmm1
paddq xmm9, xmm1
por xmm8, xmm6
por xmm9, xmm7
pxor xmm8, xmm4
psrlq xmm8, 7
pxor xmm9, xmm4
psrlq xmm9, 7
pand xmm8, xmm5
paddq xmm0, xmm8
pand xmm9, xmm5
paddq xmm2, xmm9
add r15, 4
cmp r14, r15
jne 0x14013fc10
paddq xmm2, xmm0
pshufd xmm0, xmm2, 0xee
paddq xmm0, xmm2
movq rax, xmm0
cmp rbx, r14
je 0x14013fcd8
add rcx, r8
movabs r15, 0x101010101010101
nop word cs:[rax + rax]
mov r12, qword [rcx + r14*8]
inc r14
mov r13, r12
and r13, rsi
xor r13, rdi
add r13, rsi
or r13, r12
not r13
shr r13, 7
and r13, r15
add rax, r13
cmp rbx, r14
jne 0x14013fcb0
mov rcx, rdx
and rcx, 7
je 0x14013fd1f
shl ecx, 3
mov rbx, 0xffffffffffffffff
shr rbx, cl
not rbx
mov rcx, qword [rdx + r8 - 8]
mov rdx, rcx
and rdx, rsi
xor rdx, rdi
add rdx, rsi
or rdx, rcx
not rdx
shr rdx, 7
movabs rcx, 0x101010101010100
and rcx, rbx
and rcx, rdx
add rax, rcx
mov rcx, rax
and rcx, r10
shr rax, 8
and rax, r10
add rax, rcx
imul rax, r9
shr rax, 0x30
add rax, r11
inc rax
movaps xmm6, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
movaps xmm8, xmmword [rsp + 0x20]
movaps xmm9, xmmword [rsp + 0x30]
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret