Function at 0x1400d8d50
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x10], rdx
push rbx
push rbp
push rsi
push r15
sub rsp, 0x38
mov r15d, dword [rsp + 0x98]
mov rbx, r9
mov rbp, r8
mov rsi, rcx
test r15d, r15d
je 0x1400d90af
movsxd r9, dword [rsp + 0x90]
mov r11, qword [rsp + 0xa0]
mov qword [rax + 8], rdi
mov qword [rax - 0x28], r12
mov r12, r9
mov qword [rax - 0x30], r13
lea ecx, [r9 - 8]
mov qword [rax - 0x38], r14
mov r14, qword [rsp + 0x80]
movaps xmmword [rax - 0x48], xmm6
lea eax, [r9 - 4]
movsxd r13, eax
mov qword [rsp], r13
mov qword [rsp + 8], r9
dec r15d
xor edi, edi
test ecx, ecx
js 0x1400d8e88
mov rcx, rsi
mov eax, r9d
mov rdx, r14
sub rcx, rbp
sub rdx, rbp
xorps xmm6, xmm6
shr rax, 3
mov r8, rbp
lea rdi, [rax*8]
nop
movq xmm4, qword [rcx + r8]
movq xmm5, qword [r8]
lea r8, [r8 + 8]
movss xmm2, dword [r11]
punpcklbw xmm5, xmm6
punpcklbw xmm4, xmm6
shufps xmm2, xmm2, 0
movdqa xmm0, xmm4
punpcklwd xmm0, xmm4
psrad xmm0, 0x10
punpckhwd xmm4, xmm4
psrad xmm4, 0x10
cvtdq2ps xmm1, xmm0
movdqa xmm0, xmm5
punpcklwd xmm0, xmm5
psrad xmm0, 0x10
mulps xmm1, xmm2
cvtdq2ps xmm0, xmm0
divps xmm1, xmm0
movdqa xmm0, xmm5
punpckhwd xmm0, xmm5
psrad xmm0, 0x10
cvtdq2ps xmm0, xmm0
cvtps2dq xmm3, xmm1
cvtdq2ps xmm1, xmm4
mulps xmm1, xmm2
divps xmm1, xmm0
xorps xmm0, xmm0
pcmpeqw xmm0, xmm5
cvtps2dq xmm1, xmm1
packssdw xmm3, xmm1
pand xmm0, xmm3
pxor xmm0, xmm3
packuswb xmm0, xmm0
movq qword [rdx + r8 - 8], xmm0
sub rax, 1
jne 0x1400d8df0
cmp rdi, r13
jg 0x1400d8ff3
mov rbx, r13
lea rcx, [rsi + 1]
sub rbx, rdi
lea r13, [0x1401e19c0]
add rcx, rdi
shr rbx, 2
mov r9, rbp
mov r10, r14
sub r9, rsi
sub r10, rsi
inc rbx
mov r12d, 0xff
lea rdi, [rdi + rbx*4]
movzx edx, byte [r9 + rcx - 1]
test dl, dl
je 0x1400d8f02
movzx eax, byte [rcx - 1]
movss xmm0, dword [r13 + rax*4 + 0x200]
mulss xmm0, dword [r11]
divss xmm0, dword [r13 + rdx*4 + 0x200]
cvtss2si r8d, xmm0
cmp r8d, r12d
jbe 0x1400d8f05
xor eax, eax
test r8d, r8d
cmovg eax, r12d
movzx r8d, al
jmp 0x1400d8f05
xor r8b, r8b
movzx edx, byte [r9 + rcx]
test dl, dl
je 0x1400d8f40
movzx eax, byte [rcx]
movss xmm0, dword [r13 + rax*4 + 0x200]
mulss xmm0, dword [r11]
divss xmm0, dword [r13 + rdx*4 + 0x200]
cvtss2si edx, xmm0
cmp edx, r12d
jbe 0x1400d8f42
xor eax, eax
test edx, edx
cmovg eax, r12d
movzx edx, al
jmp 0x1400d8f42
xor dl, dl
mov byte [r10 + rcx - 1], r8b
mov byte [r10 + rcx], dl
movzx edx, byte [r9 + rcx + 1]
test dl, dl
je 0x1400d8f8b
movzx eax, byte [rcx + 1]
movss xmm0, dword [r13 + rax*4 + 0x200]
mulss xmm0, dword [r11]
divss xmm0, dword [r13 + rdx*4 + 0x200]
cvtss2si r8d, xmm0
cmp r8d, r12d
jbe 0x1400d8f8e
xor eax, eax
test r8d, r8d
cmovg eax, r12d
movzx r8d, al
jmp 0x1400d8f8e
xor r8b, r8b
movzx edx, byte [r9 + rcx + 2]
test dl, dl
je 0x1400d8fcb
movzx eax, byte [rcx + 2]
movss xmm0, dword [r13 + rax*4 + 0x200]
mulss xmm0, dword [r11]
divss xmm0, dword [r13 + rdx*4 + 0x200]
cvtss2si edx, xmm0
cmp edx, r12d
jbe 0x1400d8fcd
xor eax, eax
test edx, edx
cmovg eax, r12d
movzx edx, al
jmp 0x1400d8fcd
xor dl, dl
mov byte [r10 + rcx + 1], r8b
mov byte [r10 + rcx + 2], dl
add rcx, 4
sub rbx, 1
jne 0x1400d8ec2
mov r12, qword [rsp + 8]
mov r13, qword [rsp]
mov rbx, qword [rsp + 0x78]
cmp rdi, r12
jge 0x1400d9071
mov r9, rbp
lea rdx, [rdi + rsi]
mov r10, r14
lea r13, [0x1401e19c0]
sub r9, rsi
sub r10, rsi
mov r8, r12
mov ebx, 0xff
sub r8, rdi
nop word [rax + rax]
movzx ecx, byte [rdx + r9]
test cl, cl
je 0x1400d9059
movzx eax, byte [rdx]
movss xmm0, dword [r13 + rax*4 + 0x200]
mulss xmm0, dword [r11]
divss xmm0, dword [r13 + rcx*4 + 0x200]
cvtss2si ecx, xmm0
cmp ecx, ebx
jbe 0x1400d905b
xor eax, eax
test ecx, ecx
cmovg eax, ebx
movzx ecx, al
jmp 0x1400d905b
xor cl, cl
mov byte [rdx + r10], cl
inc rdx
sub r8, 1
jne 0x1400d9020
mov r13, qword [rsp]
mov rbx, qword [rsp + 0x78]
mov r9d, dword [rsp + 0x90]
add rbp, rbx
add rsi, qword [rsp + 0x68]
add r14, qword [rsp + 0x88]
lea ecx, [r9 - 8]
test r15d, r15d
jne 0x1400d8dc1
movaps xmm6, xmmword [rsp + 0x10]
mov r14, qword [rsp + 0x20]
mov r13, qword [rsp + 0x28]
mov r12, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x60]
add rsp, 0x38
pop r15
pop rsi
pop rbp
pop rbx
ret