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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
vmovdqu xmmword [rsp + 0xf0], xmm15
vmovdqu xmmword [rsp + 0xe0], xmm14
vmovdqu xmmword [rsp + 0xd0], xmm13
vmovdqu xmmword [rsp + 0xc0], xmm12
vmovdqu xmmword [rsp + 0xb0], xmm11
vmovdqu xmmword [rsp + 0xa0], xmm10
vmovdqu xmmword [rsp + 0x90], xmm9
vmovdqu xmmword [rsp + 0x80], xmm8
vmovdqu xmmword [rsp + 0x70], xmm7
vmovups xmmword [rsp + 0x60], xmm6
mov ebp, r9d
mov r15, r8
mov rdi, rdx
mov r14, rcx
mov ecx, 0x2997
call fcn.1401c3b4c
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
mov qword [rdi], rbx
lea rsi, [rbx + 0x2970]
mov qword [rdi + 0x10], rsi
mov r8d, 0x2970
mov rcx, rbx
xor edx, edx
call fcn.1401bb600
mov qword [rdi + 8], rsi
test byte [r14 + 0x1a0], 2
jne 0x14008f4cb
lea rax, [r15 + 0x2968]
cmp rax, rbx
jb 0x14008f583
lea rax, [rbx + 0x2968]
cmp rax, r15
jb 0x14008f583
xor eax, eax
nop word [rax + rax]
vmovq xmm0, qword [r15 + rax*8]
vmovq qword [rbx + rax*8], xmm0
inc rax
cmp rax, 0x52e
jne 0x14008f4b0
jmp 0x14008fb16
mov r8, qword [r14 + 0x18]
xor eax, eax
mov r9, r8
and r9, 0x1fff
setne al
lea r11d, [rax + 1]
mov rdx, r8
and rdx, 0x3ffe000
cmove r11d, eax
movabs rax, 0x7ffc000000
xor esi, esi
and rax, r8
setne sil
movabs rcx, 0xfff8000000000
xor r10d, r10d
and rcx, r8
setne r10b
add r10d, esi
add r10d, r11d
mov dword [rsp + 0x2c], 0xffffffff
cmp r10d, 2
je 0x14008f599
cmp r10d, 1
jne 0x14008f655
xor r8d, r8d
popcnt r8, r9
popcnt rdx, rdx
popcnt rax, rax
popcnt rcx, rcx
xor r9d, r9d
cmp r8d, edx
setb r9b
cmovb r8d, edx
cmp r8d, eax
mov edx, 2
cmovae rdx, r9
cmovb r8d, eax
cmp r8d, ecx
mov eax, 3
cmovae rax, rdx
mov ecx, 1
xor r8d, r8d
jmp 0x14008f6a0
mov r8d, 0x2970
mov rcx, rbx
mov rdx, r15
call fcn.1401bb6d0
jmp 0x14008fb16
test rax, rax
setne r11b
popcnt r12, r9
xor r14d, r14d
popcnt r14, rdx
xor esi, esi
popcnt rsi, rax
xor r10d, r10d
popcnt r10, rcx
xor r8d, r8d
cmp r12d, r14d
setb r8b
mov eax, r12d
cmovb eax, r14d
cmp eax, esi
mov r13d, 2
cmovb r8, r13
cmovb eax, esi
cmp eax, r10d
mov eax, 3
cmovb r8, rax
xor r13d, r13d
test r9, r9
sete r13b
mov r9d, 0x7fffffff
cmovne r9d, r12d
cmp r9d, r14d
seta r12b
test rdx, rdx
setne dl
neg r13
test dl, r12b
cmovne r9d, r14d
mov edx, 1
cmove rdx, r13
cmp r9d, esi
seta r14b
test r11b, r14b
cmovne r9d, esi
mov r11d, 2
cmovne rdx, r11
cmp r9d, r10d
cmovbe rax, rdx
test rcx, rcx
mov byte [rsp + r8 + 0x2c], 0
cmove rax, rdx
mov ecx, 2
mov r8d, 1
jmp 0x14008f6a0
xor ecx, ecx
tzcnt rcx, r8
btc r8, rcx
xor edx, edx
tzcnt rdx, r8
btc r8, rdx
xor eax, eax
tzcnt rax, r8
imul eax, eax, 0x4f
shr eax, 0xa
imul ecx, ecx, 0x4f
shr ecx, 0xa
imul edx, edx, 0x4f
shr edx, 0xa
test r8, r8
mov byte [rsp + rcx + 0x2c], 0
mov byte [rsp + rdx + 0x2c], 1
cmove rax, r8
mov ecx, 3
mov r8d, 2
mov edx, dword [rsp + 0x170]
mov byte [rsp + rax + 0x2c], r8b
test ebp, ebp
js 0x14008f6c7
movzx eax, bpl
imul eax, eax, 0x4f
shr eax, 0xa
cmp byte [rsp + rax + 0x2c], 0xff
jne 0x14008f6c7
mov byte [rsp + rax + 0x2c], cl
inc cl
test edx, edx
mov qword [rsp + 0x38], rdi
js 0x14008f6e6
movzx eax, dl
imul eax, eax, 0x4f
shr eax, 0xa
cmp byte [rsp + rax + 0x2c], 0xff
jne 0x14008f6e6
mov byte [rsp + rax + 0x2c], cl
inc cl
mov eax, dword [rsp + 0x2c]
cmp al, 0xff
sete dl
movzx ecx, cl
cmove eax, ecx
add cl, dl
movzx edx, byte [rsp + 0x2d]
cmp dl, 0xff
sete r8b
movzx ecx, cl
cmove edx, ecx
add cl, r8b
movzx r8d, byte [rsp + 0x2e]
cmp r8b, 0xff
sete r9b
movzx ecx, cl
cmove r8d, ecx
add cl, r9b
movzx r9d, byte [rsp + 0x2f]
cmp r9b, 0xff
movzx ecx, cl
cmovne ecx, r9d
vmovd xmm0, eax
vpinsrb xmm0, xmm0, edx, 1
vpmovzxbq xmm0, xmm0
vpmuldq xmm4, xmm0, xmmword [0x140224110]
vinserti128 ymm0, ymm4, xmm4, 1
movzx eax, r8b
lea rdx, [rax + rax*2]
lea rdi, [rax + rdx*4]
movzx ecx, cl
lea rdx, [rcx + rcx*2]
lea rcx, [rcx + rdx*4]
vpermq ymm1, ymm4, 0x11
vmovq xmm2, rdi
vpbroadcastq ymm2, xmm2
vmovq xmm3, rcx
vpbroadcastq ymm3, xmm3
vmovq rdx, xmm4
vpextrq r8, xmm4, 1
mov qword [rsp + 0x48], r15
lea rax, [r15 + 0x18]
mov qword [rsp + 0x40], rax
xor r9d, r9d
mov r11d, 1
vpbroadcastq ymm5, qword [0x140224140]
vpbroadcastb ymm7, byte [0x140224150]
vbroadcasti128 ymm8, xmmword [0x1402245c0]
vpxor xmm9, xmm9, xmm9
vbroadcasti128 ymm10, xmmword [0x1402245d0]
vpbroadcastd xmm11, dword [0x140224148]
xor r15d, r15d
mov qword [rsp + 0x50], rdi
jmp 0x14008f809
mov r9, qword [rsp + 0x58]
add r9d, r15d
lea rax, [r15 + 1]
cmp r15, 0x33
mov r15, rax
je 0x14008fb11
test r15, r15
je 0x14008f7f8
shlx r12, r11, r15
mov qword [rsp + 0x58], r9
movsxd r9, r9d
mov qword [rsp + 0x30], r9
cmp r15, 4
jb 0x14008fa4c
mov rbp, r15
and rbp, 0xfffffffffffffffc
vmovq xmm13, r12
vpblendd ymm13, ymm13, ymmword [0x140224120], 0xfc
vpermq ymm13, ymm13, 0xc4
mov r9, qword [rsp + 0x30]
mov rax, qword [rsp + 0x40]
lea rsi, [rax + r9*8]
xor r14d, r14d
nop word [rax + rax]
shlx r9, r11, r14
lea edi, [r14 + 1]
lea r10d, [r14 + 2]
shlx r10, r11, r10
lea r13d, [r14 + 3]
mov rax, r12
bts rax, rdi
mov rdi, r12
bts rdi, r13
vmovq xmm14, rdi
vmovq xmm15, r10
vpunpcklqdq xmm14, xmm15, xmm14
vmovq xmm15, r9
vmovq xmm4, rax
vpunpcklqdq xmm4, xmm15, xmm4
vinserti128 ymm4, ymm4, xmm14, 1
vpor ymm14, ymm13, ymm4
vpsrlvq ymm15, ymm4, ymm13
vpblendd ymm15, ymm14, ymm15, 0xcc
vmovd eax, xmm14
shr eax, 0xd
vextracti128 xmm6, ymm14, 1
vmovd r9d, xmm6
shr r9d, 0xd
vmovd xmm6, eax
vpblendd ymm6, ymm4, ymm6, 3
vmovq xmm12, r9
vpbroadcastq ymm12, xmm12
vpblendd ymm6, ymm6, ymm12, 0x30
vpand ymm6, ymm6, ymm5
vpsllvq ymm6, ymm6, ymm1
vpand ymm12, ymm15, ymm5
vpsllvq ymm12, ymm12, ymm0
vpblendd ymm4, ymm14, ymm4, 0xcc
vpsrlq ymm14, ymm4, 0x1a
vpand ymm14, ymm14, ymm5
vpsllvq ymm14, ymm14, ymm2
vpor ymm12, ymm12, ymm14
vpsrlq ymm4, ymm4, 0x27
vpand ymm4, ymm4, ymm5
vpsllvq ymm4, ymm4, ymm3
vpor ymm4, ymm12, ymm4
vpor ymm4, ymm4, ymm6
vpaddq ymm6, ymm4, ymmword [0x140221dc0]
vpandn ymm6, ymm4, ymm6
vpand ymm12, ymm6, ymm7
vpshufb ymm12, ymm8, ymm12
vpsrlw ymm6, ymm6, 4
vpand ymm6, ymm6, ymm7
vpshufb ymm6, ymm8, ymm6
vpaddb ymm6, ymm12, ymm6
vpsadbw ymm6, ymm9, ymm6
vextracti128 xmm12, ymm6, 1
vpackusdw xmm6, xmm6, xmm12
vpshufb ymm12, ymm10, ymm4
vpsrlw ymm14, ymm4, 4
vpand ymm14, ymm14, ymm7
vpcmpeqb ymm15, ymm14, ymm9
vpand ymm12, ymm12, ymm15
vpshufb ymm14, ymm10, ymm14
vpaddb ymm12, ymm12, ymm14
vpcmpeqb ymm14, ymm9, ymm4
vpsrlw ymm14, ymm14, 8
vpand ymm14, ymm12, ymm14
vpsrlw ymm12, ymm12, 8
vpaddw ymm12, ymm12, ymm14
vpcmpeqw ymm14, ymm9, ymm4
vpsrld ymm14, ymm14, 0x10
vpand ymm14, ymm12, ymm14
vpsrld ymm12, ymm12, 0x10
vpaddd ymm12, ymm12, ymm14
vpcmpeqd xmm14, xmm14, xmm14
vpcmpeqd ymm4, ymm9, ymm4
vpsrlq ymm4, ymm4, 0x20
vpand ymm4, ymm12, ymm4
vpsrlq ymm12, ymm12, 0x20
vpaddq ymm4, ymm12, ymm4
vextracti128 xmm12, ymm4, 1
vpackusdw xmm4, xmm4, xmm12
vpxor xmm4, xmm11, xmm4
vpaddd xmm12, xmm14, xmm4
vpmaddwd xmm4, xmm12, xmm4
vpsrld xmm4, xmm4, 1
vpaddd xmm4, xmm4, xmm6
vmovsd xmm6, qword [rsi + r14*8 - 0x18]
vpmovsxdq ymm4, xmm4
vmovq rax, xmm4
vmovsd qword [rbx + rax*8], xmm6
vpextrq rax, xmm4, 1
vmovsd xmm6, qword [rsi + r14*8 - 0x10]
vmovsd qword [rbx + rax*8], xmm6
vextracti128 xmm4, ymm4, 1
vmovq rax, xmm4
vmovsd xmm6, qword [rsi + r14*8 - 8]
vmovsd qword [rbx + rax*8], xmm6
vpextrq rax, xmm4, 1
vmovq xmm4, qword [rsi + r14*8]
vmovq qword [rbx + rax*8], xmm4
add r14, 4
cmp rbp, r14
jne 0x14008f860
mov rsi, r15
movabs rax, 0x7ffffffffffffffc
and rsi, rax
cmp rsi, r15
mov rdi, qword [rsp + 0x50]
jae 0x14008f7f0
mov r9, qword [rsp + 0x30]
mov rax, qword [rsp + 0x48]
lea r14, [rax + r9*8]
nop dword [rax + rax]
mov r13, r12
bts r13, rsi
mov eax, r13d
and eax, 0x1fff
shlx rax, rax, rdx
mov r9d, r13d
shr r9d, 0xd
and r9d, 0x1fff
shlx r9, r9, r8
or r9, rax
mov rax, r13
shr rax, 0x1a
and eax, 0x1fff
shlx rax, rax, rdi
shr r13, 0x27
and r13d, 0x1fff
shlx r10, r13, rcx
or r10, rax
or r10, r9
xor eax, eax
tzcnt rax, r10
xor r9d, r9d
lzcnt r9, r10
xor r9d, 0x3f
lea r10d, [r9 - 1]
imul r10d, r9d
shr r10d, 1
add r10d, eax
movsxd rax, r10d
vmovq xmm4, qword [r14 + rsi*8]
vmovq qword [rbx + rax*8], xmm4
inc rsi
cmp r15, rsi
jne 0x14008fa80
jmp 0x14008f7f0
mov rdi, qword [rsp + 0x38]
mov rax, rdi
vmovups xmm6, xmmword [rsp + 0x60]
vmovups xmm7, xmmword [rsp + 0x70]
vmovups xmm8, xmmword [rsp + 0x80]
vmovups xmm9, xmmword [rsp + 0x90]
vmovups xmm10, xmmword [rsp + 0xa0]
vmovups xmm11, xmmword [rsp + 0xb0]
vmovups xmm12, xmmword [rsp + 0xc0]
vmovups xmm13, xmmword [rsp + 0xd0]
vmovups xmm14, xmmword [rsp + 0xe0]
vmovups xmm15, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret