Function at 0x1400c8920
Capabilities:
Encode data using xor

Disassembly:
push rdi
sub rsp, 0x110
mov qword [rsp + 0x20], rcx
mov rdi, rcx
test rdx, rdx
jg 0x1400c8941
xor eax, eax
add rsp, 0x110
pop rdi
ret
lea rax, [rdx + rdx]
mov qword [rsp + 0x130], rbx
movabs rcx, 0x8003f5e05be7b8e0
mov qword [rsp + 0x108], rbp
mul rcx
movabs rax, 0xb8aa3b295c1798e0
mov qword [rsp + 0x100], rsi
mul rdx
mov qword [rsp + 0xe8], r14
mov ebx, 0xffffffff
add rdx, rdx
mov qword [rsp + 0xe0], r15
mov ecx, edx
mov r10, rdx
imul r11, rcx, 0x381b0ad
shr r10, 0x20
shr r11, 0x20
add r11, 0xd3b944e
imul r11, rcx
shr r11, 0x20
add r11, 0x3ddc0466
imul r11, rcx
shr r11, 0x20
sub r11d, 0x4e99495f
imul r11, rcx
shr r11, 0x20
shr r11d, 2
add r11d, 0x40000000
shr r11d, 0x17
cmp r10d, 0x12
jge 0x1400c8a7e
xor r8d, r8d
lea r9d, [rbx + 9]
mov edx, r8d
test r10d, r10d
js 0x1400c8a77
movabs rbp, 0xa3b195354a39b70d
lea esi, [rbx + 2]
movabs r15, 0x60bee2bee120fc15
movabs r14, 0x1b03738712fad5c9
nop dword [rax]
cmp r9d, 8
jne 0x1400c8a3e
add qword [rdi], r15
mov rax, rbp
mul qword [rdi]
mov r9d, r8d
xor rdx, rax
mov rax, r14
mul rdx
xor rdx, rax
movzx eax, r11b
movzx ecx, dl
imul ecx, eax
add ecx, 0xa7
shr ecx, 8
cmp ecx, esi
movzx r11d, cl
cmovb r11d, esi
inc ebx
movzx ecx, r11b
inc r9d
lzcnt ecx, ecx
sub ecx, 0x18
shr rdx, 8
shl r11b, cl
sub r10d, ecx
jns 0x1400c8a20
mov eax, ebx
jmp 0x1400c8ece
mov rcx, qword [rdi]
movabs r15, 0x60bee2bee120fc15
mov qword [rsp + 0xf8], r12
add rcx, r15
mov qword [rsp + 0xf0], r13
movabs rbp, 0xa3b195354a39b70d
movaps xmmword [rsp + 0xd0], xmm6
movabs r14, 0x1b03738712fad5c9
movaps xmmword [rsp + 0xc0], xmm7
mov rax, rbp
mul rcx
movaps xmmword [rsp + 0xb0], xmm8
xorps xmm8, xmm8
movaps xmmword [rsp + 0xa0], xmm9
movdqa xmm9, xmmword [0x14020bb90]
movaps xmmword [rsp + 0x90], xmm10
movdqa xmm10, xmmword [0x14020bb60]
mov r12d, r10d
xor rdx, rax
movaps xmmword [rsp + 0x80], xmm11
movdqa xmm11, xmmword [0x14020b9b0]
mov rax, r14
mul rdx
movaps xmmword [rsp + 0x70], xmm12
movdqa xmm12, xmmword [0x14020b9c0]
movaps xmmword [rsp + 0x60], xmm13
movdqa xmm13, xmmword [0x14020bb50]
movaps xmmword [rsp + 0x50], xmm14
movdqa xmm14, xmmword [0x14020bb20]
mov r8, rax
mov r9, rdx
movaps xmmword [rsp + 0x40], xmm15
movdqa xmm15, xmmword [0x14020bb70]
lea rdx, [rcx + r15]
mov qword [rsp + 0x30], rdx
xor r9, r8
mov qword [rdi], rdx
mov rax, rbp
mul rdx
movq xmm5, r9
pinsrb xmm9, r11d, 0
xor rdx, rax
mov rax, r14
mul rdx
xor rdx, rax
movzx eax, r9b
imul eax, r11d
movq xmm0, rdx
punpcklqdq xmm5, xmm0
add eax, 0xa7
movdqa xmm4, xmm5
shr eax, 8
pinsrb xmm4, eax, 0
pmaxub xmm4, xmm12
movdqa xmm3, xmm4
movdqa xmm1, xmm4
psllq xmm1, 4
andps xmm3, xmm10
andps xmm1, xmm10
pcmpeqb xmm3, xmm8
movdqa xmm0, xmm3
pmovmskb eax, xmm3
pblendvb xmm4, xmm1, xmm0
movdqa xmm2, xmm4
movdqa xmm1, xmm4
psllq xmm1, 2
andps xmm2, xmm13
andps xmm1, xmm15
pcmpeqb xmm2, xmm8
movdqa xmm0, xmm2
pblendvb xmm4, xmm1, xmm0
movdqa xmm0, xmm4
movdqa xmm1, xmm4
popcnt edx, eax
andps xmm0, xmm14
psllq xmm1, 1
andps xmm1, xmmword [0x14020bb80]
pcmpeqb xmm0, xmm8
pmovmskb eax, xmm2
pblendvb xmm4, xmm1, xmm0
popcnt ecx, eax
lea r8d, [rcx + rdx*2]
pmovmskb eax, xmm0
add r8d, r8d
mov esi, 0xf
movdqa xmm6, xmm9
movzx r13d, r11b
popcnt ecx, eax
neg ecx
mov ebx, r12d
sub ecx, r8d
movdqa xmm7, xmm5
add r10d, ecx
js 0x1400c8db0
mov rdi, qword [rsp + 0x30]
nop dword [rax]
movdqa xmm1, xmm4
lea rcx, [rdi + r15]
punpcklbw xmm1, xmm8
mov rax, rbp
mul rcx
movdqa xmm7, xmm5
movdqa xmm6, xmm9
movdqa xmm9, xmm4
punpckhbw xmm4, xmm8
add rcx, r15
movzx r13d, r11b
xor rdx, rax
mov rdi, rcx
mov rax, r14
mov ebx, r12d
mul rdx
xor r11b, r11b
add esi, 0x10
mov r8, rax
mov r9, rdx
xor r9, r8
mov rax, rbp
mul rcx
movq xmm5, r9
mov r12d, r10d
xor rdx, rax
mov rax, r14
mul rdx
xor rdx, rax
movq xmm0, rdx
punpcklqdq xmm5, xmm0
movdqa xmm0, xmm5
punpcklbw xmm0, xmm8
pmullw xmm1, xmm0
movdqa xmm0, xmm5
punpckhbw xmm0, xmm8
pmullw xmm0, xmm4
paddw xmm1, xmm11
psrlw xmm1, 8
movdqa xmm4, xmm1
paddw xmm0, xmm11
psrlw xmm0, 8
packuswb xmm4, xmm0
pmaxub xmm4, xmm12
movdqa xmm3, xmm4
movdqa xmm1, xmm4
psllq xmm1, 4
andps xmm3, xmm10
andps xmm1, xmm10
pcmpeqb xmm3, xmm8
movdqa xmm0, xmm3
pmovmskb eax, xmm3
pblendvb xmm4, xmm1, xmm0
movdqa xmm2, xmm4
movdqa xmm1, xmm4
psllq xmm1, 2
andps xmm2, xmm13
andps xmm1, xmm15
pcmpeqb xmm2, xmm8
popcnt edx, eax
movdqa xmm0, xmm2
pmovmskb eax, xmm2
pblendvb xmm4, xmm1, xmm0
movdqa xmm0, xmm4
movdqa xmm1, xmm4
popcnt ecx, eax
andps xmm0, xmm14
psllq xmm1, 1
andps xmm1, xmmword [0x14020bb80]
pcmpeqb xmm0, xmm8
pmovmskb eax, xmm0
lea r8d, [rcx + rdx*2]
add r8d, r8d
popcnt ecx, eax
neg ecx
sub ecx, r8d
add r10d, ecx
pblendvb xmm4, xmm1, xmm0
jns 0x1400c8c60
mov qword [rsp + 0x30], rdi
mov rdi, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x30]
mov qword [rdi], rdx
mov edi, esi
movdqa xmmword [rsp + 0x20], xmm9
lea rcx, [rsp + 0x20]
sub esi, 0x10
call fcn.1400c87d0
movaps xmm15, xmmword [rsp + 0x40]
mov rdx, rax
movaps xmm14, xmmword [rsp + 0x50]
movaps xmm13, xmmword [rsp + 0x60]
movaps xmm12, xmmword [rsp + 0x70]
movaps xmm11, xmmword [rsp + 0x80]
movaps xmm10, xmmword [rsp + 0x90]
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
lzcnt rax, rax
test r11b, r11b
jne 0x1400c8e38
cmp r12d, eax
jge 0x1400c8e38
lea rcx, [rsp + 0x30]
movdqa xmmword [rsp + 0x20], xmm7
movzx r11d, r13b
movdqa xmmword [rsp + 0x30], xmm6
call fcn.1400c87d0
mov rdx, rax
lzcnt rax, rax
jmp 0x1400c8e43
mov ebx, r12d
movdqa xmmword [rsp + 0x20], xmm5
mov esi, edi
movaps xmm7, xmmword [rsp + 0xc0]
lea r9d, [rsi - 0x10]
movaps xmm6, xmmword [rsp + 0xd0]
mov r13, qword [rsp + 0xf0]
mov r12, qword [rsp + 0xf8]
test r11b, r11b
jne 0x1400c8e7a
mov ecx, 0x38
sub ebx, eax
sub ecx, eax
shr rdx, cl
jmp 0x1400c8e7e
movzx edx, r11b
xor r8d, r8d
test ebx, ebx
js 0x1400c8ecb
lea esi, [r8 + 1]
nop dword [rax]
cmp r8d, 0x10
jae 0x1400c8ecb
mov eax, r8d
inc r8d
movzx ecx, byte [rsp + rax + 0x20]
movzx eax, dl
imul ecx, eax
add ecx, 0xa7
shr ecx, 8
cmp ecx, esi
movzx eax, cl
cmovb eax, esi
inc r9d
movzx edx, al
lzcnt ecx, edx
sub ecx, 0x18
shl dl, cl
sub ebx, ecx
jns 0x1400c8e90
mov eax, r9d
mov r14, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x100]
mov rbp, qword [rsp + 0x108]
mov rbx, qword [rsp + 0x130]
mov r15, qword [rsp + 0xe0]
add rsp, 0x110
pop rdi
ret