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

Disassembly:
push rdi
push rsi
push rbx
movsxd rbx, dword [rcx]
mov r9, qword [rcx + 8]
mov eax, dword [rcx + 4]
mov rsi, rbx
mov r11, rdx
test r9, r9
je 0x140159460
test rbx, rbx
je 0x140159460
movzx edx, byte [r9]
and eax, 0x100
jne 0x1401594d8
cmp rdx, 0x7f
jbe 0x1401594c8
lea rdi, [rbx + 1]
xor r10d, r10d
mov esi, edi
mov rcx, rdi
jmp 0x140159471
xor ecx, ecx
mov esi, 1
xor r10d, r10d
mov edi, 1
xor ebx, ebx
test r11, r11
je 0x1401594bd
mov r8, qword [r11]
test r8, r8
je 0x1401594bd
mov eax, r10d
sub rcx, rbx
mov byte [r8], r10b
lea rdx, [rbx - 1]
and eax, 1
add r8, rcx
movzx eax, al
test rbx, rbx
je 0x1401594ba
nop dword [rax]
movzx ecx, byte [r9 + rdx]
xor ecx, r10d
movzx ecx, cl
add eax, ecx
mov byte [r8 + rdx], al
shr eax, 8
sub rdx, 1
jae 0x1401594a0
add qword [r11], rdi
mov eax, esi
pop rbx
pop rsi
pop rdi
ret
mov rdi, rbx
xor r10d, r10d
test eax, eax
je 0x14015945b
nop word [rax + rax]
cmp rdx, 0x80
jbe 0x1401594f8
lea rdi, [rbx + 1]
mov r10d, 0xffffffff
mov esi, edi
jmp 0x14015945b
mov rdi, rbx
mov r10d, 0xffffffff
jne 0x14015945b
cmp rbx, 1
je 0x1401596ca
lea rax, [rbx - 2]
lea rcx, [rbx - 1]
cmp rax, 0xe
jbe 0x1401596d7
mov r8, rcx
pxor xmm5, xmm5
pxor xmm3, xmm3
mov rax, r9
and r8, 0xfffffffffffffff0
pxor xmm2, xmm2
lea rdx, [r8 + r9]
nop dword [rax]
movdqu xmm0, xmmword [rax + 1]
add rax, 0x10
movdqa xmm1, xmm0
punpckhbw xmm0, xmm3
punpcklbw xmm1, xmm3
movdqa xmm4, xmm1
punpcklwd xmm1, xmm2
punpckhwd xmm4, xmm2
por xmm1, xmm4
movdqa xmm4, xmm0
punpcklwd xmm0, xmm2
punpckhwd xmm4, xmm2
por xmm0, xmm4
por xmm1, xmm0
por xmm5, xmm1
cmp rax, rdx
jne 0x140159540
movdqa xmm1, xmm5
movdqa xmm4, xmm5
lea rdx, [r8 + 1]
psrldq xmm1, 8
por xmm1, xmm5
psrldq xmm5, 8
movdqa xmm0, xmm1
por xmm4, xmm5
psrldq xmm0, 4
por xmm1, xmm0
movd eax, xmm1
cmp r8, rcx
je 0x1401596b1
mov r10, rbx
sub r10, r8
lea rcx, [r10 - 1]
sub r10, 2
cmp r10, 6
jbe 0x140159644
movq xmm2, qword [r9 + r8 + 1]
pxor xmm0, xmm0
pxor xmm3, xmm3
movdqa xmm1, xmm2
punpcklbw xmm2, xmm0
punpcklbw xmm1, xmm0
pshufd xmm2, xmm2, 0x4e
movdqa xmm0, xmm1
movdqa xmm5, xmm1
movdqa xmm1, xmm2
punpcklwd xmm0, xmm3
punpcklwd xmm2, xmm3
punpcklwd xmm5, xmm3
pshufd xmm0, xmm0, 0x4e
punpcklwd xmm1, xmm3
pshufd xmm2, xmm2, 0x4e
por xmm0, xmm5
por xmm2, xmm1
por xmm0, xmm2
por xmm0, xmm4
movd r8d, xmm0
pshufd xmm5, xmm0, 0xe5
movd eax, xmm5
or eax, r8d
mov r8, rcx
and r8, 0xfffffffffffffff8
add rdx, r8
and ecx, 7
je 0x1401596b1
movzx ecx, byte [r9 + rdx]
or eax, ecx
lea rcx, [rdx + 1]
cmp rcx, rbx
jae 0x1401596b1
movzx ecx, byte [r9 + rdx + 1]
or eax, ecx
lea rcx, [rdx + 2]
cmp rcx, rbx
jae 0x1401596b1
movzx ecx, byte [r9 + rdx + 2]
or eax, ecx
lea rcx, [rdx + 3]
cmp rcx, rbx
jae 0x1401596b1
movzx ecx, byte [r9 + rdx + 3]
or eax, ecx
lea rcx, [rdx + 4]
cmp rcx, rbx
jae 0x1401596b1
movzx ecx, byte [r9 + rdx + 4]
or eax, ecx
lea rcx, [rdx + 5]
cmp rcx, rbx
jae 0x1401596b1
movzx ecx, byte [r9 + rdx + 5]
or eax, ecx
lea rcx, [rdx + 6]
cmp rcx, rbx
jae 0x1401596b1
movzx edx, byte [r9 + rdx + 6]
or eax, edx
test eax, eax
setne al
mov r10d, eax
movzx eax, al
lea rdi, [rax + rbx]
neg r10d
mov esi, edi
jmp 0x14015945b
mov esi, 1
xor r10d, r10d
jmp 0x14015945b
pxor xmm4, xmm4
xor r8d, r8d
xor eax, eax
mov edx, 1
jmp 0x1401595ba