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

Disassembly:
push rbp
push rsi
push r12
push r15
sub rsp, 0x28
mov r10, qword [rsp + 0x78]
mov rbp, r8
movsxd r11, dword [rsp + 0x80]
mov rsi, rcx
mov r15d, dword [rsp + 0x88]
mov r12, r11
shr r10, 1
shr rdx, 1
shr r9, 1
test r15d, r15d
je 0x1400d946e
mov qword [rsp + 0x50], rbx
lea eax, [r11 - 8]
mov qword [rsp + 0x20], rdi
add rdx, rdx
mov qword [rsp + 0x18], r13
add r9, r9
movsxd r13, eax
add r10, r10
lea eax, [r11 - 4]
mov qword [rsp + 0x10], r14
mov r11, qword [rsp + 0x90]
mov r14, qword [rsp + 0x70]
movsxd rbx, eax
xor eax, eax
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x68], rdx
mov qword [rsp], r9
mov qword [rsp + 8], r10
nop dword [rax]
dec r15d
mov rdi, rax
test r13, r13
js 0x1400d920c
mov rcx, rsi
lea rax, [r13 + 8]
mov rdx, r14
sub rcx, rbp
sub rdx, rbp
mov r8, rbp
shr rax, 3
lea rdi, [rax*8]
nop
movss xmm2, dword [r11]
shufps xmm2, xmm2, 0
movdqu xmm5, xmmword [r8]
movdqu xmm3, xmmword [rcx + r8]
lea r8, [r8 + 0x10]
movdqa xmm0, xmm3
punpcklwd xmm0, xmm3
psrad xmm0, 0x10
punpckhwd xmm3, xmm3
psrad xmm3, 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
cvtps2dq xmm4, xmm1
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm3
mulps xmm1, xmm2
divps xmm1, xmm0
xorps xmm0, xmm0
pcmpeqw xmm0, xmm5
cvtps2dq xmm1, xmm1
packssdw xmm4, xmm1
pand xmm0, xmm4
pxor xmm0, xmm4
movdqu xmmword [rdx + r8 - 0x10], xmm0
sub rax, 1
jne 0x1400d9180
cmp rdi, rbx
jg 0x1400d93bb
sub rbx, rdi
lea rcx, [rdi + 1]
mov r9, rbp
shr rbx, 2
mov r10, r14
lea rcx, [rsi + rcx*2]
sub r9, rsi
sub r10, rsi
inc rbx
mov r13d, 0x7fff
lea rdi, [rdi + rbx*4]
nop dword [rax]
movsx edx, word [r9 + rcx - 2]
test dx, dx
je 0x1400d9292
movsx eax, word [rcx - 2]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [r11]
divss xmm1, xmm0
cvtss2si r8d, xmm1
lea eax, [r8 + 0x8000]
cmp eax, 0xffff
ja 0x1400d927d
xor eax, eax
jmp 0x1400d9296
test r8d, r8d
mov eax, 0xffff8000
cmovg ax, r13w
movzx r8d, ax
xor eax, eax
jmp 0x1400d9296
movzx r8d, ax
movsx edx, word [r9 + rcx]
test dx, dx
je 0x1400d92e2
movsx eax, word [rcx]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [r11]
divss xmm1, xmm0
cvtss2si edx, xmm1
lea eax, [rdx + 0x8000]
cmp eax, 0xffff
ja 0x1400d92cf
xor eax, eax
jmp 0x1400d92e5
test edx, edx
mov eax, 0xffff8000
cmovg ax, r13w
movzx edx, ax
xor eax, eax
jmp 0x1400d92e5
movzx edx, ax
mov word [r10 + rcx - 2], r8w
mov word [r10 + rcx], dx
movsx edx, word [r9 + rcx + 2]
test dx, dx
je 0x1400d9342
movsx eax, word [rcx + 2]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [r11]
divss xmm1, xmm0
cvtss2si r8d, xmm1
lea eax, [r8 + 0x8000]
cmp eax, 0xffff
ja 0x1400d932d
xor eax, eax
jmp 0x1400d9346
test r8d, r8d
mov eax, 0xffff8000
cmovg ax, r13w
movzx r8d, ax
xor eax, eax
jmp 0x1400d9346
movzx r8d, ax
movsx edx, word [r9 + rcx + 4]
test dx, dx
je 0x1400d9394
movsx eax, word [rcx + 4]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [r11]
divss xmm1, xmm0
cvtss2si edx, xmm1
lea eax, [rdx + 0x8000]
cmp eax, 0xffff
ja 0x1400d9381
xor eax, eax
jmp 0x1400d9397
test edx, edx
mov eax, 0xffff8000
cmovg ax, r13w
movzx edx, ax
xor eax, eax
jmp 0x1400d9397
movzx edx, ax
mov word [r10 + rcx + 2], r8w
mov word [r10 + rcx + 4], dx
add rcx, 8
sub rbx, 1
jne 0x1400d9240
mov r13, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x78]
cmp rdi, r12
jge 0x1400d943e
mov r9, rbp
lea rcx, [rsi + rdi*2]
mov r10, r14
sub r9, rsi
sub r10, rsi
mov r8, r12
sub r8, rdi
mov ebx, 0x7fff
nop dword [rax + rax]
movsx edx, word [rcx + r9]
test dx, dx
je 0x1400d9425
movsx eax, word [rcx]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
mulss xmm1, dword [r11]
divss xmm1, xmm0
cvtss2si edx, xmm1
lea eax, [rdx + 0x8000]
cmp eax, 0xffff
ja 0x1400d941a
movzx eax, dx
jmp 0x1400d9425
test edx, edx
mov eax, 0xffff8000
cmovg ax, bx
mov word [rcx + r10], ax
add rcx, 2
mov eax, 0
sub r8, 1
jne 0x1400d93e0
mov rbx, qword [rsp + 0x78]
add rsi, qword [rsp + 0x68]
mov eax, 0
add rbp, qword [rsp]
add r14, qword [rsp + 8]
test r15d, r15d
jne 0x1400d9150
mov r14, qword [rsp + 0x10]
mov r13, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x50]
add rsp, 0x28
pop r15
pop r12
pop rsi
pop rbp
ret