Function at 0x14006c180
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push rbp
push rbx
push rsi
push r13
push r15
lea rbp, [rsp - 0x150]
sub rsp, 0x250
mov rax, qword [0x1402a83b0]
xor rax, rsp
mov qword [rbp + 0xe0], rax
mov r13, rdx
mov qword [rbp - 0x30], rdx
mov rdx, qword [rbp + 0x1a8]
mov rbx, rcx
mov rcx, qword [rbp + 0x1a0]
mov r15d, r9d
mov qword [rbp - 0x38], rdx
mov dword [rsp + 0x5c], r9d
mov esi, r8d
mov qword [rbp - 0x40], rcx
mov dword [rsp + 0x64], r8d
test r8d, r8d
jle 0x14006c9b1
test r9d, r9d
jle 0x14006c9b1
movzx eax, word [rbx + 0xc]
cmp ax, 1
jne 0x14006c204
mov rdx, r13
mov rcx, rbx
call fcn.1400695a0
jmp 0x14006c95a
cmp dword [rbx + 4], r9d
jle 0x14006c23c
cmp dword [rbx], r8d
jle 0x14006c23c
mov eax, dword [rbp + 0x1b0]
mov dword [rsp + 0x38], eax
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
mov eax, 0x10
mov rcx, rbx
mov rdx, r13
mov dword [rsp + 0x20], eax
call fcn.14006a120
jmp 0x14006c95a
cmp ax, 2
je 0x14006c256
cmp word [rbx + 0x12], 4
mov eax, 0x10
mov ecx, 0x20
cmove eax, ecx
jmp 0x14006c25b
mov eax, 2
movsx r8d, byte [rbx + 0x15]
mov dword [rsp + 0x20], r9d
lea rcx, [rsp + 0x70]
mov r9d, esi
movzx edx, ax
call fcn.140062fe0
test ax, ax
jne 0x14006c284
mov eax, 1
jmp 0x14006c95a
movzx eax, word [rbx + 0x20]
mov qword [rsp + 0x248], rdi
mov qword [rsp + 0x240], r12
mov word [rbp - 0x70], ax
movzx eax, word [rbx + 0x22]
mov qword [rsp + 0x238], r14
movaps xmmword [rsp + 0x200], xmm8
movaps xmmword [rsp + 0x1f0], xmm9
lea rcx, [rsp + 0x70]
mov rdx, rbx
mov word [rbp - 0x6e], ax
call fcn.1400638f0
cmp word [rbx + 0xc], 2
movzx edi, word [rbx + 0xe]
mov r11d, 0x100
jne 0x14006c31e
movzx eax, word [rbx + 0x20]
test ax, ax
je 0x14006c31e
movsx r9d, ax
lea r8, [rbp - 0x20]
dec r9d
xor r10d, r10d
mov ecx, r10d
nop word [rax + rax]
mov eax, ecx
add ecx, 0xff
lea r8, [r8 + 1]
cdq
idiv r9d
mov byte [r8 - 1], al
cmp ecx, 0xff00
jl 0x14006c300
jmp 0x14006c33d
xor r10d, r10d
lea rcx, [rbp - 0x20]
mov eax, r10d
nop dword [rax + rax]
mov byte [rcx], al
inc eax
lea rcx, [rcx + 1]
cmp eax, r11d
jl 0x14006c330
movd xmm8, dword [rbx]
movd xmm9, dword [rbx + 4]
mov r12, qword [rbp - 0x60]
mov r14d, r10d
mov dword [rsp + 0x54], r10d
mov qword [rsp + 0x68], r12
cvtdq2pd xmm8, xmm8
cvtdq2pd xmm9, xmm9
movd xmm0, esi
movaps xmmword [rsp + 0x220], xmm6
movaps xmmword [rsp + 0x210], xmm7
cvtdq2pd xmm0, xmm0
divsd xmm8, xmm0
movd xmm0, r15d
cvtdq2pd xmm0, xmm0
divsd xmm9, xmm0
test r15d, r15d
jle 0x14006c8c7
movsd xmm7, qword [0x140269a98]
mov rax, qword [rbp - 0x40]
mov r9d, 0x7a0
test rax, rax
je 0x14006c3cb
mov r8, qword [rbp - 0x38]
mov edx, r15d
mov ecx, r14d
call rax
test eax, eax
jne 0x14006c911
xor r10d, r10d
mov r9d, 0x7a0
mov eax, dword [rbx + 4]
movd xmm5, r14d
mov r11, r12
dec eax
cvtdq2pd xmm5, xmm5
mulsd xmm5, xmm9
cvttsd2si edx, xmm5
movd xmm0, edx
mov dword [rsp + 0x58], edx
lea ecx, [rdx + 1]
cmp eax, ecx
cmovl ecx, eax
mov eax, r10d
mov dword [rsp + 0x60], ecx
mov dword [rsp + 0x50], eax
cvtdq2pd xmm0, xmm0
subsd xmm5, xmm0
test esi, esi
jle 0x14006c89f
movaps xmm6, xmm7
subsd xmm6, xmm5
nop word [rax + rax]
mov r10d, dword [rbx + 8]
mov r13, qword [rbx + 0x30]
movzx r15d, word [rbx + 0xc]
movd xmm4, eax
movzx r14d, r15w
cvtdq2pd xmm4, xmm4
mulsd xmm4, xmm8
cvttsd2si r8d, xmm4
mov eax, r8d
movd xmm0, r8d
imul eax, edi
movsxd r12, eax
mov eax, r10d
imul eax, edx
cvtdq2pd xmm0, xmm0
movsxd rcx, eax
mov eax, 0x7f0
subsd xmm4, xmm0
add rcx, r13
add rcx, r12
and r14w, ax
je 0x14006c4d7
movzx eax, byte [rcx]
movzx edx, word [rsp + 0x7c]
mov byte [rsp + 0x40], al
movzx eax, byte [rcx + 1]
mov byte [rsp + 0x45], al
movzx eax, byte [rcx + 2]
mov byte [rsp + 0x49], al
and dx, r9w
je 0x14006c49d
movzx eax, byte [rcx + 3]
mov byte [rsp + 0x4c], al
mov r9d, dword [rbx]
inc r8d
cmp r8d, r9d
jge 0x14006c4ae
movsxd rax, edi
add rcx, rax
movzx eax, byte [rcx + 1]
movzx esi, byte [rcx]
mov byte [rsp + 0x43], al
movzx eax, byte [rcx + 2]
mov byte [rsp + 0x47], al
test dx, dx
je 0x14006c558
movzx eax, byte [rcx + 3]
mov byte [rsp + 0x4b], al
jmp 0x14006c558
mov rdx, qword [rbx + 0x28]
movzx eax, byte [rcx]
inc r8d
test rdx, rdx
je 0x14006c539
movzx r9d, byte [rax + rdx]
mov byte [rsp + 0x40], r9b
movzx r9d, byte [rax + rdx + 0x100]
movzx eax, byte [rax + rdx + 0x200]
mov byte [rsp + 0x45], r9b
mov r9d, dword [rbx]
mov byte [rsp + 0x49], al
cmp r8d, r9d
jge 0x14006c518
movsxd rax, edi
add rcx, rax
movzx eax, byte [rcx]
movzx ecx, byte [rax + rdx + 0x100]
movzx esi, byte [rax + rdx]
movzx eax, byte [rax + rdx + 0x200]
mov byte [rsp + 0x47], al
mov byte [rsp + 0x43], cl
jmp 0x14006c558
mov r9d, dword [rbx]
movzx eax, byte [rbp + rax - 0x20]
mov byte [rsp + 0x40], al
cmp r8d, r9d
jge 0x14006c550
movsxd rax, edi
add rcx, rax
movzx eax, byte [rcx]
movzx esi, byte [rbp + rax - 0x20]
imul r10d, dword [rsp + 0x60]
movsxd rcx, r10d
add rcx, r13
add rcx, r12
test r14w, r14w
je 0x14006c5d5
movzx edx, word [rsp + 0x7c]
movzx r12d, byte [rcx + 1]
movzx r13d, byte [rcx + 2]
movzx r10d, byte [rcx]
mov eax, 0x7a0
mov byte [rsp + 0x42], r12b
mov byte [rsp + 0x46], r13b
and dx, ax
je 0x14006c59c
movzx eax, byte [rcx + 3]
mov byte [rsp + 0x4a], al
cmp r8d, r9d
jge 0x14006c5a7
movsxd rax, edi
add rcx, rax
movzx r9d, byte [rcx + 1]
movzx r14d, byte [rcx + 2]
movzx r8d, byte [rcx]
mov byte [rsp + 0x48], r9b
mov byte [rsp + 0x44], r14b
test dx, dx
je 0x14006c662
movzx ecx, byte [rcx + 3]
mov byte [rsp + 0x41], cl
jmp 0x14006c667
mov rdx, qword [rbx + 0x28]
movzx eax, byte [rcx]
test rdx, rdx
je 0x14006c633
movzx r12d, byte [rax + rdx + 0x100]
movzx r13d, byte [rax + rdx + 0x200]
movzx r10d, byte [rax + rdx]
mov byte [rsp + 0x42], r12b
mov byte [rsp + 0x46], r13b
cmp r8d, r9d
jge 0x14006c60d
movsxd rax, edi
add rcx, rax
movzx eax, byte [rcx]
movzx r9d, byte [rax + rdx + 0x100]
movzx r14d, byte [rax + rdx + 0x200]
movzx r8d, byte [rax + rdx]
mov byte [rsp + 0x48], r9b
mov byte [rsp + 0x44], r14b
jmp 0x14006c662
movzx r10d, byte [rbp + rax - 0x20]
cmp r8d, r9d
jge 0x14006c641
add rcx, rdi
movzx eax, byte [rcx]
movzx r9d, byte [rsp + 0x48]
movzx r14d, byte [rsp + 0x44]
movzx r8d, byte [rbp + rax - 0x20]
movzx r12d, byte [rsp + 0x42]
movzx r13d, byte [rsp + 0x46]
movzx ecx, byte [rsp + 0x41]
dec r15w
cmp r15w, 1
jbe 0x14006c806
movzx eax, sil
movaps xmm3, xmm7
add r11, 3
subsd xmm3, xmm4
movd xmm2, eax
movzx eax, r8b
movd xmm0, eax
movzx eax, byte [rsp + 0x40]
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm6
movd xmm1, eax
cvtdq2pd xmm0, xmm0
movzx eax, r10b
mulsd xmm0, xmm5
cvtdq2pd xmm1, xmm1
addsd xmm2, xmm0
movd xmm0, eax
mulsd xmm1, xmm6
mulsd xmm2, xmm4
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm5
addsd xmm1, xmm0
mulsd xmm1, xmm3
addsd xmm2, xmm1
cvttsd2si rax, xmm2
mov byte [r11 - 3], al
movzx eax, byte [rsp + 0x43]
movd xmm2, eax
movzx eax, r9b
movd xmm0, eax
movzx eax, byte [rsp + 0x45]
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm6
movd xmm1, eax
cvtdq2pd xmm0, xmm0
movzx eax, r12b
mulsd xmm0, xmm5
cvtdq2pd xmm1, xmm1
addsd xmm2, xmm0
movd xmm0, eax
mulsd xmm1, xmm6
mulsd xmm2, xmm4
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm5
addsd xmm1, xmm0
mulsd xmm1, xmm3
addsd xmm2, xmm1
cvttsd2si rax, xmm2
mov byte [r11 - 2], al
movzx eax, byte [rsp + 0x47]
movd xmm2, eax
movzx eax, r14b
movd xmm0, eax
movzx eax, byte [rsp + 0x49]
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm6
movd xmm1, eax
cvtdq2pd xmm0, xmm0
movzx eax, r13b
mulsd xmm0, xmm5
cvtdq2pd xmm1, xmm1
addsd xmm2, xmm0
movd xmm0, eax
mulsd xmm1, xmm6
mulsd xmm2, xmm4
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm5
addsd xmm1, xmm0
mulsd xmm1, xmm3
addsd xmm2, xmm1
cvttsd2si rax, xmm2
mov byte [r11 - 1], al
cmp word [rsp + 0x7c], 0x20
jne 0x14006c86d
movzx eax, byte [rsp + 0x4b]
movd xmm2, eax
movzx eax, cl
movd xmm0, eax
movzx eax, byte [rsp + 0x4c]
cvtdq2pd xmm2, xmm2
mulsd xmm2, xmm6
movd xmm1, eax
movzx eax, byte [rsp + 0x4a]
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm5
cvtdq2pd xmm1, xmm1
addsd xmm2, xmm0
movd xmm0, eax
mulsd xmm1, xmm6
mulsd xmm2, xmm4
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm5
addsd xmm1, xmm0
mulsd xmm1, xmm3
addsd xmm2, xmm1
cvttsd2si rax, xmm2
jmp 0x14006c867
movzx eax, byte [rsp + 0x40]
movaps xmm1, xmm7
subsd xmm1, xmm4
movd xmm3, eax
movzx eax, r10b
movd xmm0, eax
cvtdq2pd xmm3, xmm3
movzx eax, sil
mulsd xmm3, xmm6
movd xmm2, eax
cvtdq2pd xmm0, xmm0
movzx eax, r8b
mulsd xmm0, xmm5
cvtdq2pd xmm2, xmm2
addsd xmm3, xmm0
movd xmm0, eax
mulsd xmm2, xmm6
mulsd xmm3, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm5
addsd xmm2, xmm0
mulsd xmm2, xmm4
addsd xmm3, xmm2
cvttsd2si rax, xmm3
mov byte [r11], al
inc r11
mov eax, dword [rsp + 0x50]
mov esi, dword [rsp + 0x64]
mov edx, dword [rsp + 0x58]
inc eax
mov r9d, 0x7a0
mov dword [rsp + 0x50], eax
cmp eax, esi
jl 0x14006c420
mov r14d, dword [rsp + 0x54]
mov r15d, dword [rsp + 0x5c]
mov r12, qword [rsp + 0x68]
xor r10d, r10d
movsxd rax, dword [rsp + 0x78]
inc r14d
add r12, rax
mov dword [rsp + 0x54], r14d
mov qword [rsp + 0x68], r12
cmp r14d, r15d
jl 0x14006c39f
mov r13, qword [rbp - 0x30]
mov r11d, 0x100
cmp word [rsp + 0x7c], 2
jne 0x14006c8d4
mov word [rbp - 0x70], r11w
test r13, r13
je 0x14006c978
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rbp - 0x80]
xor eax, eax
movups xmmword [r13], xmm0
movups xmmword [r13 + 0x10], xmm1
movaps xmm0, xmmword [rbp - 0x70]
movaps xmm1, xmmword [rbp - 0x60]
movups xmmword [r13 + 0x20], xmm0
movsd xmm0, qword [rbp - 0x50]
movups xmmword [r13 + 0x30], xmm1
movsd qword [r13 + 0x40], xmm0
jmp 0x14006c920
lea rcx, [rsp + 0x70]
call fcn.140064bc0
mov eax, 0xf
movaps xmm7, xmmword [rsp + 0x210]
movaps xmm6, xmmword [rsp + 0x220]
movaps xmm8, xmmword [rsp + 0x200]
mov r14, qword [rsp + 0x238]
mov r12, qword [rsp + 0x240]
mov rdi, qword [rsp + 0x248]
movaps xmm9, xmmword [rsp + 0x1f0]
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.1401bd600
add rsp, 0x250
pop r15
pop r13
pop rsi
pop rbx
pop rbp
ret
mov rcx, rbx
call fcn.140064bc0
xor eax, eax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rbp - 0x80]
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm1
movaps xmm0, xmmword [rbp - 0x70]
movaps xmm1, xmmword [rbp - 0x60]
movups xmmword [rbx + 0x20], xmm0
movsd xmm0, qword [rbp - 0x50]
movups xmmword [rbx + 0x30], xmm1
movsd qword [rbx + 0x40], xmm0
jmp 0x14006c920
mov eax, 0x10
jmp 0x14006c95a