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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rdi, r8
mov rbx, rdx
mov r14, rcx
xor r15d, r15d
nop dword [rax]
mov ecx, 0x1bb98
call fcn.14001d490
mov rsi, rax
xor r12d, r12d
call sub.msvcrt.dll_rand
cdqe
imul rcx, rax, 0x45dbc649
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x2b
add ecx, edx
imul ecx, ecx, 0x1d51
sub eax, ecx
mov dword [rsi + r12*4], eax
call sub.msvcrt.dll_rand
inc r12
cmp r12, 0x168
jne 0x140001650
mov rcx, rsi
call fcn.14001d470
inc r15d
cmp r15d, 0x164c
jne 0x140001640
mov ecx, 0x100
call fcn.14001d4a0
mov rsi, rax
xorps xmm0, xmm0
movups xmmword [rax], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm0
movups xmmword [rax + 0x70], xmm0
movups xmmword [rax + 0x80], xmm0
movups xmmword [rax + 0x90], xmm0
movups xmmword [rax + 0xa0], xmm0
movups xmmword [rax + 0xb0], xmm0
movups xmmword [rax + 0xc0], xmm0
movups xmmword [rax + 0xd0], xmm0
movups xmmword [rax + 0xe0], xmm0
movups xmmword [rax + 0xf0], xmm0
xor eax, eax
nop word cs:[rax + rax]
mov byte [rsi + rax], al
inc rax
cmp rax, 0x100
jne 0x140001710
mov r12, qword [r14 + 8]
sub r12, qword [r14]
xor r13d, r13d
nop dword [rax + rax]
mov ecx, 0x15dd8
call fcn.14001d490
mov r15, rax
xor ebp, ebp
nop
call sub.msvcrt.dll_rand
cdqe
imul rcx, rax, 0x507c8097
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x2b
add ecx, edx
imul ecx, ecx, 0x1972
sub eax, ecx
mov dword [r15 + rbp*4], eax
call sub.msvcrt.dll_rand
inc rbp
cmp rbp, 0x16e
jne 0x140001740
mov rcx, r15
call fcn.14001d470
inc r13d
cmp r13d, 0x171f
jne 0x140001730
mov r8, qword [r14]
xor ecx, ecx
xor r9d, r9d
nop word cs:[rax + rax]
movzx r10d, byte [rsi + rcx]
add r9b, r10b
mov rax, rcx
xor edx, edx
div r12
add r9b, byte [r8 + rdx]
movzx eax, r9b
movzx edx, byte [rsi + rax]
mov byte [rsi + rcx], dl
mov byte [rsi + rax], r10b
inc rcx
cmp rcx, 0x100
jne 0x1400017a0
xor r15d, r15d
nop word cs:[rax + rax]
mov ecx, 0x1b03c
call fcn.14001d490
mov r14, rax
xor r12d, r12d
call sub.msvcrt.dll_rand
cdqe
imul rcx, rax, 0x2dbbc1d5
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x2a
add ecx, edx
imul ecx, ecx, 0x1664
sub eax, ecx
mov dword [r14 + r12*4], eax
call sub.msvcrt.dll_rand
inc r12
cmp r12, 0x28e
jne 0x1400017f0
mov rcx, r14
call fcn.14001d470
inc r15d
cmp r15d, 0x1600
jne 0x1400017e0
test rdi, rdi
je 0x1400018a6
xor eax, eax
xor ecx, ecx
xor edx, edx
nop word [rax + rax]
lea r8d, [rdx + 1]
lea r9d, [rdx + 0x100]
test r8d, r8d
cmovns r9d, r8d
and r9d, 0xffffff00
neg r9d
add edx, r9d
inc edx
movsxd r8, edx
movzx r9d, byte [rsi + r8]
add cl, r9b
movzx r10d, cl
movzx r11d, byte [rsi + r10]
mov byte [rsi + r8], r11b
mov byte [rsi + r10], r9b
add r9b, byte [rsi + r8]
movzx r8d, r9b
movzx r8d, byte [rsi + r8]
xor byte [rbx + rax], r8b
inc rax
cmp rdi, rax
jne 0x140001850
xor ebx, ebx
nop dword [rax + rax]
mov ecx, 0xc31c
call fcn.14001d490
mov rdi, rax
xor r14d, r14d
call sub.msvcrt.dll_rand
cdqe
imul rcx, rax, 0xffffffffb30b7975
shr rcx, 0x20
add ecx, eax
mov edx, ecx
shr edx, 0x1f
sar ecx, 0xd
add ecx, edx
imul ecx, ecx, 0x2dc1
sub eax, ecx
mov dword [rdi + r14*4], eax
call sub.msvcrt.dll_rand
inc r14
cmp r14, 0x32c
jne 0x1400018c0
mov rcx, rdi
call fcn.14001d470
inc ebx
cmp ebx, 0xf04
jne 0x1400018b0
mov rcx, rsi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.14001d470