Function at 0x14000d2b0
Capabilities:
Encode data using xor

Disassembly:
push rbp
sub rsp, 0x330
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0x2a0], xmm12
movaps xmmword [rbp + 0x290], xmm11
movaps xmmword [rbp + 0x280], xmm10
movaps xmmword [rbp + 0x270], xmm9
movaps xmmword [rbp + 0x260], xmm8
movaps xmmword [rbp + 0x250], xmm7
movaps xmmword [rbp + 0x240], xmm6
mov qword [rbp + 0x220], rdx
mov qword [rbp + 0x228], rcx
mov rax, rcx
add rax, 7
and rax, 0xfffffffffffffff8
mov qword [rbp + 0x230], rax
sub rax, rcx
mov qword [rbp + 0x238], rax
cmp rax, rdx
ja 0x14000d736
mov rdx, qword [rbp + 0x238]
mov rax, qword [rbp + 0x220]
mov rcx, qword [rbp + 0x228]
add rcx, rdx
mov qword [rbp + 0x200], rcx
sub rax, rdx
mov rdx, rax
shr rdx, 3
mov qword [rbp + 0x208], rdx
mov rdx, rax
and rdx, 7
mov qword [rbp + 0x210], rdx
mov rdx, rax
and rdx, 0xfffffffffffffff8
add rcx, rdx
mov qword [rbp + 0x218], rcx
cmp rax, 8
jb 0x14000d736
mov rcx, qword [rbp + 0x230]
mov rdx, qword [rbp + 0x228]
xor eax, eax
cmp rcx, rdx
mov qword [rbp + 0x1f8], rax
je 0x14000d556
mov rcx, qword [rbp + 0x238]
xor eax, eax
cmp rcx, 4
mov rcx, rax
mov qword [rbp + 0x1e8], rcx
mov qword [rbp + 0x1f0], rax
jb 0x14000d4e9
mov rax, qword [rbp + 0x238]
and eax, 4
mov qword [rbp + 0x1b0], rax
xorps xmm0, xmm0
xor eax, eax
mov qword [rbp + 0x1b8], rax
movaps xmm1, xmm0
movaps xmmword [rbp + 0x1c0], xmm1
movaps xmmword [rbp + 0x1d0], xmm0
jmp 0x14000d3f6
movaps xmm0, xmmword [rbp + 0x1d0]
movaps xmm1, xmmword [rbp + 0x1c0]
mov rax, qword [rbp + 0x1b8]
mov rcx, qword [rbp + 0x1b0]
mov rdx, qword [rbp + 0x228]
movzx r8d, word [rdx + rax]
movd xmm3, r8d
movzx edx, word [rdx + rax + 2]
movd xmm2, edx
movaps xmm5, xmmword [0x1400574e0]
pcmpgtb xmm3, xmm5
punpcklbw xmm3, xmm4
pshuflw xmm3, xmm3, 0xd4
pshufd xmm3, xmm3, 0xd4
movaps xmm4, xmmword [0x1400574f0]
pand xmm3, xmm4
pcmpgtb xmm2, xmm5
punpcklbw xmm2, xmm5
pshuflw xmm2, xmm2, 0xd4
pshufd xmm2, xmm2, 0xd4
pand xmm2, xmm4
paddq xmm1, xmm3
movaps xmmword [rbp + 0x190], xmm1
paddq xmm0, xmm2
movaps xmmword [rbp + 0x1a0], xmm0
add rax, 4
cmp rax, rcx
mov qword [rbp + 0x1b8], rax
movaps xmmword [rbp + 0x1c0], xmm1
movaps xmmword [rbp + 0x1d0], xmm0
jne 0x14000d3f6
mov rcx, qword [rbp + 0x1b0]
mov rdx, qword [rbp + 0x238]
movaps xmm1, xmmword [rbp + 0x190]
movaps xmm0, xmmword [rbp + 0x1a0]
paddq xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddq xmm0, xmm1
movq rax, xmm0
cmp rdx, rcx
mov rdx, rax
mov qword [rbp + 0x1e8], rdx
mov qword [rbp + 0x1f0], rcx
mov qword [rbp + 0x1f8], rax
je 0x14000d556
mov rcx, qword [rbp + 0x1e8]
mov rax, qword [rbp + 0x1f0]
mov qword [rbp + 0x180], rcx
mov qword [rbp + 0x188], rax
mov rcx, qword [rbp + 0x188]
mov rax, qword [rbp + 0x180]
mov rdx, qword [rbp + 0x238]
mov r8, qword [rbp + 0x228]
cmp byte [r8 + rcx], 0xbf
setg r8b
and r8b, 1
movzx r8d, r8b
add rax, r8
add rcx, 1
cmp rcx, rdx
mov rdx, rax
mov qword [rbp + 0x180], rdx
mov qword [rbp + 0x188], rcx
mov qword [rbp + 0x1f8], rax
jne 0x14000d505
mov rcx, qword [rbp + 0x210]
mov rax, qword [rbp + 0x1f8]
mov qword [rbp + 0x170], rax
xor eax, eax
cmp rcx, 0
mov qword [rbp + 0x178], rax
je 0x14000d6fd
mov rcx, qword [rbp + 0x210]
mov rax, qword [rbp + 0x218]
cmp byte [rax], 0xbf
setg al
and al, 1
movzx eax, al
mov qword [rbp + 0x168], rax
cmp rcx, 1
mov qword [rbp + 0x178], rax
je 0x14000d6fd
mov rcx, qword [rbp + 0x210]
mov rax, qword [rbp + 0x168]
mov rdx, qword [rbp + 0x218]
cmp byte [rdx + 1], 0xbf
setg dl
and dl, 1
movzx edx, dl
add rax, rdx
mov qword [rbp + 0x160], rax
cmp rcx, 2
mov qword [rbp + 0x178], rax
je 0x14000d6fd
mov rcx, qword [rbp + 0x210]
mov rax, qword [rbp + 0x160]
mov rdx, qword [rbp + 0x218]
cmp byte [rdx + 2], 0xbf
setg dl
and dl, 1
movzx edx, dl
add rax, rdx
mov qword [rbp + 0x158], rax
cmp rcx, 3
mov qword [rbp + 0x178], rax
je 0x14000d6fd
mov rcx, qword [rbp + 0x210]
mov rax, qword [rbp + 0x158]
mov rdx, qword [rbp + 0x218]
cmp byte [rdx + 3], 0xbf
setg dl
and dl, 1
movzx edx, dl
add rax, rdx
mov qword [rbp + 0x150], rax
cmp rcx, 4
mov qword [rbp + 0x178], rax
je 0x14000d6fd
mov rcx, qword [rbp + 0x210]
mov rax, qword [rbp + 0x150]
mov rdx, qword [rbp + 0x218]
cmp byte [rdx + 4], 0xbf
setg dl
and dl, 1
movzx edx, dl
add rax, rdx
mov qword [rbp + 0x148], rax
cmp rcx, 5
mov qword [rbp + 0x178], rax
je 0x14000d6fd
mov rcx, qword [rbp + 0x210]
mov rax, qword [rbp + 0x148]
mov rdx, qword [rbp + 0x218]
cmp byte [rdx + 5], 0xbf
setg dl
and dl, 1
movzx edx, dl
add rax, rdx
mov qword [rbp + 0x140], rax
cmp rcx, 6
mov qword [rbp + 0x178], rax
je 0x14000d6fd
mov rax, qword [rbp + 0x140]
mov rcx, qword [rbp + 0x218]
cmp byte [rcx + 6], 0xbf
setg cl
and cl, 1
movzx ecx, cl
add rax, rcx
mov qword [rbp + 0x178], rax
mov rcx, qword [rbp + 0x208]
mov rdx, qword [rbp + 0x200]
mov r8, qword [rbp + 0x170]
mov rax, qword [rbp + 0x178]
add rax, r8
mov qword [rbp + 0x128], rdx
mov qword [rbp + 0x130], rcx
mov qword [rbp + 0x138], rax
jmp 0x14000d90f
mov rcx, qword [rbp + 0x220]
xor eax, eax
cmp rcx, 0
mov qword [rbp + 0x120], rax
je 0x14000de61
mov rcx, qword [rbp + 0x220]
xor eax, eax
cmp rcx, 4
mov rcx, rax
mov qword [rbp + 0x110], rcx
mov qword [rbp + 0x118], rax
jb 0x14000d89c
mov rax, qword [rbp + 0x220]
and rax, 0xfffffffffffffffc
mov qword [rbp + 0xe0], rax
xorps xmm0, xmm0
xor eax, eax
mov qword [rbp + 0xe8], rax
movaps xmm1, xmm0
movaps xmmword [rbp + 0xf0], xmm1
movaps xmmword [rbp + 0x100], xmm0
jmp 0x14000d7a5
movaps xmm0, xmmword [rbp + 0x100]
movaps xmm1, xmmword [rbp + 0xf0]
mov rax, qword [rbp + 0xe8]
mov rcx, qword [rbp + 0xe0]
mov rdx, qword [rbp + 0x228]
movzx r8d, word [rdx + rax]
movd xmm3, r8d
movzx edx, word [rdx + rax + 2]
movd xmm2, edx
movaps xmm5, xmmword [0x1400574e0]
pcmpgtb xmm3, xmm5
punpcklbw xmm3, xmm4
pshuflw xmm3, xmm3, 0xd4
pshufd xmm3, xmm3, 0xd4
movaps xmm4, xmmword [0x1400574f0]
pand xmm3, xmm4
pcmpgtb xmm2, xmm5
punpcklbw xmm2, xmm5
pshuflw xmm2, xmm2, 0xd4
pshufd xmm2, xmm2, 0xd4
pand xmm2, xmm4
paddq xmm1, xmm3
movaps xmmword [rbp + 0xc0], xmm1
paddq xmm0, xmm2
movaps xmmword [rbp + 0xd0], xmm0
add rax, 4
cmp rax, rcx
mov qword [rbp + 0xe8], rax
movaps xmmword [rbp + 0xf0], xmm1
movaps xmmword [rbp + 0x100], xmm0
jne 0x14000d7a5
mov rcx, qword [rbp + 0xe0]
mov rdx, qword [rbp + 0x220]
movaps xmm1, xmmword [rbp + 0xc0]
movaps xmm0, xmmword [rbp + 0xd0]
paddq xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddq xmm0, xmm1
movq rax, xmm0
cmp rcx, rdx
mov rdx, rax
mov qword [rbp + 0x110], rdx
mov qword [rbp + 0x118], rcx
mov qword [rbp + 0x120], rax
je 0x14000de61
mov rcx, qword [rbp + 0x110]
mov rax, qword [rbp + 0x118]
mov qword [rbp + 0xb0], rcx
mov qword [rbp + 0xb8], rax
mov rcx, qword [rbp + 0xb8]
mov rax, qword [rbp + 0xb0]
mov rdx, qword [rbp + 0x220]
mov r8, qword [rbp + 0x228]
cmp byte [r8 + rcx], 0xbf
setg r8b
and r8b, 1
movzx r8d, r8b
add rax, r8
add rcx, 1
cmp rcx, rdx
mov rdx, rax
mov qword [rbp + 0xb0], rdx
mov qword [rbp + 0xb8], rcx
mov qword [rbp + 0x120], rax
je 0x14000de61
jmp 0x14000d8b8
mov rdx, qword [rbp + 0x128]
mov rcx, qword [rbp + 0x130]
mov rax, qword [rbp + 0x138]
mov qword [rbp + 0x98], rax
mov qword [rbp + 0xa0], rcx
mov qword [rbp + 0xa8], rdx
cmp rcx, 0
mov qword [rbp + 0x120], rax
je 0x14000de61
mov rcx, qword [rbp + 0xa0]
mov rax, qword [rbp + 0xa8]
mov rdx, rcx
sub rdx, 0xc0
mov edx, 0xc0
cmovb rdx, rcx
mov qword [rbp + 0x60], rdx
mov r9, rdx
shl r9, 3
mov r8, rax
add r8, r9
mov qword [rbp + 0x68], r8
mov r8, rcx
sub r8, rdx
mov qword [rbp + 0x70], r8
mov r8, rdx
and r8, 3
mov qword [rbp + 0x78], r8
shr rdx, 2
mov qword [rbp + 0x80], rdx
shl rdx, 5
add rax, rdx
mov qword [rbp + 0x88], rax
xor eax, eax
cmp rcx, 4
mov qword [rbp + 0x90], rax
jb 0x14000dcce
mov rax, qword [rbp + 0xa8]
mov rdx, qword [rbp + 0x80]
movabs rcx, 0x7ffffffffffffff
add rdx, rcx
movabs rcx, 0x7ffffffffffffff
and rdx, rcx
mov rcx, rdx
add rcx, 1
mov qword [rbp + 0x48], rcx
xor ecx, ecx
cmp rdx, 3
mov qword [rbp + 0x50], rcx
mov qword [rbp + 0x58], rax
jb 0x14000dc37
mov rax, qword [rbp + 0xa8]
mov rcx, qword [rbp + 0x48]
movabs rdx, 0xffffffffffffffc
and rcx, rdx
mov qword [rbp + 8], rcx
shl rcx, 5
add rax, rcx
mov qword [rbp + 0x10], rax
xorps xmm0, xmm0
xor eax, eax
mov qword [rbp + 0x18], rax
movaps xmm1, xmm0
movaps xmmword [rbp + 0x20], xmm1
movaps xmmword [rbp + 0x30], xmm0
jmp 0x14000da45
movaps xmm0, xmmword [rbp + 0x30]
movaps xmm1, xmmword [rbp + 0x20]
mov rax, qword [rbp + 0x18]
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp + 0xa8]
mov r8, rax
shl r8, 5
mov qword [rbp - 0x48], r8
movups xmm11, xmmword [rdx + r8]
movups xmm6, xmmword [rdx + r8 + 0x10]
movups xmm8, xmmword [rdx + r8 + 0x20]
movups xmm3, xmmword [rdx + r8 + 0x30]
movups xmm2, xmmword [rdx + r8 + 0x70]
movups xmm5, xmmword [rdx + r8 + 0x50]
movups xmm7, xmmword [rdx + r8 + 0x60]
movups xmm10, xmmword [rdx + r8 + 0x40]
movaps xmm12, xmm11
punpcklqdq xmm12, xmm8
movaps xmm4, xmm10
punpcklqdq xmm4, xmm7
punpckhqdq xmm11, xmm8
punpckhqdq xmm10, xmm7
movaps xmm9, xmm6
punpcklqdq xmm9, xmm3
movaps xmm8, xmm5
punpcklqdq xmm8, xmm2
punpckhqdq xmm6, xmm3
punpckhqdq xmm5, xmm2
pcmpeqd xmm7, xmm7
movaps xmmword [rbp - 0x40], xmm7
movaps xmm3, xmm12
pxor xmm3, xmm7
movaps xmm2, xmm4
pxor xmm2, xmm7
psrlq xmm3, 7
psrlq xmm2, 7
psrlq xmm12, 6
psrlq xmm4, 6
por xmm3, xmm12
por xmm2, xmm4
movaps xmm4, xmmword [0x140057500]
movaps xmmword [rbp - 0x30], xmm4
pand xmm3, xmm4
pand xmm2, xmm4
paddq xmm3, xmm1
paddq xmm2, xmm0
movaps xmm1, xmm11
pxor xmm1, xmm7
movaps xmm0, xmm10
pxor xmm0, xmm7
psrlq xmm1, 7
psrlq xmm0, 7
psrlq xmm11, 6
psrlq xmm10, 6
por xmm1, xmm11
por xmm0, xmm10
pand xmm1, xmm4
pand xmm0, xmm4
paddq xmm1, xmm3
paddq xmm0, xmm2
movaps xmm3, xmm9
pxor xmm3, xmm7
movaps xmm2, xmm8
pxor xmm2, xmm7
psrlq xmm3, 7
psrlq xmm2, 7
psrlq xmm9, 6
psrlq xmm8, 6
por xmm3, xmm9
por xmm2, xmm8
pand xmm3, xmm4
pand xmm2, xmm4
paddq xmm3, xmm1
paddq xmm2, xmm0
movaps xmm1, xmm6
pxor xmm1, xmm7
movaps xmm0, xmm5
pxor xmm0, xmm7
psrlq xmm1, 7
psrlq xmm0, 7
psrlq xmm6, 6
psrlq xmm5, 6
por xmm1, xmm6
por xmm0, xmm5
pand xmm1, xmm4
pand xmm0, xmm4
paddq xmm1, xmm3
movaps xmmword [rbp - 0x20], xmm1
paddq xmm0, xmm2
movaps xmmword [rbp - 0x10], xmm0
add rax, 4
cmp rax, rcx
mov qword [rbp + 0x18], rax
movaps xmmword [rbp + 0x20], xmm1
movaps xmmword [rbp + 0x30], xmm0
jne 0x14000da45
mov rcx, qword [rbp + 0x10]
mov rdx, qword [rbp + 0x48]
mov r8, qword [rbp + 8]
movaps xmm1, xmmword [rbp - 0x20]
movaps xmm0, xmmword [rbp - 0x10]
paddq xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddq xmm0, xmm1
movq rax, xmm0
cmp rdx, r8
mov rdx, rax
mov qword [rbp + 0x50], rdx
mov qword [rbp + 0x58], rcx
mov qword [rbp + 0x90], rax
je 0x14000dcce
mov rcx, qword [rbp + 0x50]
mov rax, qword [rbp + 0x58]
mov qword [rbp - 0x58], rcx
mov qword [rbp - 0x50], rax
mov rcx, qword [rbp - 0x50]
mov r8, qword [rbp - 0x58]
mov rdx, qword [rbp + 0x88]
movups xmm3, xmmword [rcx]
movups xmm2, xmmword [rcx + 0x10]
pcmpeqd xmm4, xmm4
movaps xmm0, xmm3
pxor xmm0, xmm4
movaps xmm1, xmm2
pxor xmm1, xmm4
psrlq xmm1, 7
psrlq xmm0, 7
psrlq xmm2, 6
psrlq xmm3, 6
por xmm0, xmm3
por xmm1, xmm2
movaps xmm2, xmmword [0x140057500]
pand xmm1, xmm2
pand xmm0, xmm2
paddq xmm0, xmm1
pshufd xmm1, xmm0, 0xee
paddq xmm0, xmm1
movq rax, xmm0
add rax, r8
add rcx, 0x20
cmp rcx, rdx
mov rdx, rax
mov qword [rbp - 0x58], rdx
mov qword [rbp - 0x50], rcx
mov qword [rbp + 0x90], rax
jne 0x14000dc47
mov rcx, qword [rbp + 0x70]
mov rdx, qword [rbp + 0x68]
mov r8, qword [rbp + 0x78]
mov r9, qword [rbp + 0x98]
mov rax, qword [rbp + 0x90]
movabs r11, 0xff00ff00ff00ff
mov r10, rax
and r10, r11
shr rax, 8
movabs r11, 0xff00ff00ff00ff
and rax, r11
add rax, r10
movabs r10, 0x1000100010001
imul rax, r10
shr rax, 0x30
add rax, r9
mov qword [rbp - 0x60], rax
cmp r8, 0
mov qword [rbp + 0x128], rdx
mov qword [rbp + 0x130], rcx
mov qword [rbp + 0x138], rax
je 0x14000d90f
mov rcx, qword [rbp + 0x78]
mov rax, qword [rbp + 0xa8]
mov rdx, qword [rbp + 0x60]
and rdx, 0xfc
mov r9, rdx
shl r9, 3
mov r8, rax
add r8, r9
mov qword [rbp - 0x78], r8
mov rdx, qword [rax + rdx*8]
mov rax, rdx
xor rax, 0xffffffffffffffff
shr rax, 7
shr rdx, 6
or rax, rdx
movabs rdx, 0x101010101010101
and rax, rdx
mov qword [rbp - 0x70], rax
cmp rcx, 1
mov qword [rbp - 0x68], rax
jne 0x14000dde6
mov rcx, qword [rbp - 0x60]
mov rax, qword [rbp - 0x68]
movabs r8, 0xff00ff00ff00ff
mov rdx, rax
and rdx, r8
shr rax, 8
movabs r8, 0xff00ff00ff00ff
and rax, r8
add rax, rdx
movabs rdx, 0x1000100010001
imul rax, rdx
shr rax, 0x30
add rax, rcx
mov qword [rbp + 0x120], rax
jmp 0x14000de61
mov rcx, qword [rbp + 0x78]
mov rdx, qword [rbp - 0x70]
mov rax, qword [rbp - 0x78]
mov r8, qword [rax + 8]
mov rax, r8
xor rax, 0xffffffffffffffff
shr rax, 7
shr r8, 6
or rax, r8
movabs r8, 0x101010101010101
and rax, r8
add rax, rdx
mov qword [rbp - 0x80], rax
cmp rcx, 2
mov qword [rbp - 0x68], rax
je 0x14000dd9c
mov rcx, qword [rbp - 0x80]
mov rax, qword [rbp - 0x78]
mov rdx, qword [rax + 0x10]
mov rax, rdx
xor rax, 0xffffffffffffffff
shr rax, 7
shr rdx, 6
or rax, rdx
movabs rdx, 0x101010101010101
and rax, rdx
add rax, rcx
mov qword [rbp - 0x68], rax
jmp 0x14000dd9c
mov rax, qword [rbp + 0x120]
movaps xmm6, xmmword [rbp + 0x240]
movaps xmm7, xmmword [rbp + 0x250]
movaps xmm8, xmmword [rbp + 0x260]
movaps xmm9, xmmword [rbp + 0x270]
movaps xmm10, xmmword [rbp + 0x280]
movaps xmm11, xmmword [rbp + 0x290]
movaps xmm12, xmmword [rbp + 0x2a0]
add rsp, 0x330
pop rbp
ret