Function at 0x140064ea0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
movaps xmmword [rsp + 0x50], xmm7
movaps xmmword [rsp + 0x40], xmm6
mov rsi, rcx
mov edi, dword [rcx + 0x44]
mov r15d, dword [rcx + 0x9c]
lea eax, [rdi - 0x106]
mov dword [rsp + 0x2c], eax
movd xmm0, edi
pshufd xmm6, xmm0, 0x50
pshufd xmm7, xmm0, 0
mov eax, edi
and eax, 0xfffffff8
mov qword [rsp + 0x38], rax
lea r13d, [rax - 1]
lea eax, [rdi - 1]
lea rcx, [rdi + rdi]
add rax, rax
sub rcx, rax
add rcx, 0xfffffffffffffffe
mov qword [rsp + 0x30], rcx
xor ebp, ebp
pminud xmm7, xmmword [0x14013cc90]
packusdw xmm7, xmm7
jmp 0x140064f2d
mov rax, qword [rsi]
cmp dword [rax + 8], 0
je 0x140065136
mov ebx, dword [rsi + 0x58]
mov eax, dword [rsi + 0x94]
add r15d, eax
sub ebx, r15d
mov ecx, dword [rsi + 0x44]
add ecx, dword [rsp + 0x2c]
cmp eax, ecx
jb 0x14006505a
mov rcx, qword [rsi + 0x50]
lea rdx, [rcx + rdi]
mov r8, rdi
call fcn.1400adb90
movq xmm0, qword [rsi + 0x94]
psubd xmm0, xmm6
movq qword [rsi + 0x94], xmm0
sub dword [rsi + 0x84], edi
mov eax, dword [rsi + 0x74]
mov rcx, qword [rsi + 0x68]
mov edx, eax
and edx, 0xfffffff8
je 0x140064fbf
lea r9d, [rdx - 1]
lea r8d, [rax - 1]
lea r10, [rax + rax]
sub r10, r8
sub r10, r8
lea r10, [rcx + r10 - 2]
xor r11d, r11d
nop dword [rax]
movdqu xmm1, xmmword [r10 + r11*2]
psubusw xmm1, xmm7
movdqu xmmword [r10 + r11*2], xmm1
add r11, 8
cmp r11d, r9d
jbe 0x140064fa0
cmp eax, edx
jne 0x140064fc5
jmp 0x140064ff8
lea r8d, [rax - 1]
xor edx, edx
mov r8d, r8d
mov edx, edx
lea r9, [rax + rax]
add r8, r8
sub r9, r8
lea rcx, [rcx + r9 - 2]
nop dword [rax]
movzx r8d, word [rcx + rdx*2]
sub r8d, edi
cmovb r8d, ebp
mov word [rcx + rdx*2], r8w
inc rdx
cmp eax, edx
jne 0x140064fe0
mov rax, qword [rsi + 0x60]
cmp dword [rsp + 0x38], 0
je 0x140065034
mov rcx, qword [rsp + 0x30]
add rcx, rax
xor edx, edx
nop dword [rax]
movdqu xmm1, xmmword [rcx + rdx*2]
psubusw xmm1, xmm7
movdqu xmmword [rcx + rdx*2], xmm1
add rdx, 8
cmp edx, r13d
jbe 0x140065010
mov rdx, qword [rsp + 0x38]
mov ecx, edx
cmp edi, edx
jne 0x140065036
jmp 0x140065054
xor ecx, ecx
mov ecx, ecx
add rax, qword [rsp + 0x30]
nop dword [rax]
movzx edx, word [rax + rcx*2]
sub edx, edi
cmovb edx, ebp
mov word [rax + rcx*2], dx
inc rcx
cmp edi, ecx
jne 0x140065040
add ebx, edi
movd eax, xmm0
mov r12, qword [rsi]
mov ecx, dword [r12 + 8]
test ecx, ecx
je 0x1400651aa
mov r15d, dword [rsi + 0x9c]
cmp ecx, ebx
cmovb ebx, ecx
test ebx, ebx
je 0x1400650e8
mov r14d, eax
add r14, qword [rsi + 0x50]
add r14, r15
sub ecx, ebx
mov dword [r12 + 8], ecx
mov rax, qword [r12 + 0x28]
mov eax, dword [rax + 0x2c]
cmp eax, 2
je 0x1400650b0
cmp eax, 1
jne 0x1400650c6
mov rdx, qword [r12]
mov ecx, dword [r12 + 0x4c]
mov r8d, ebx
call fcn.140068cc0
jmp 0x1400650c1
mov rdx, qword [r12]
mov ecx, dword [r12 + 0x4c]
mov r8d, ebx
call fcn.1400606e0
mov dword [r12 + 0x4c], eax
mov rdx, qword [r12]
mov r15d, ebx
mov rcx, r14
mov r8, r15
call fcn.1400adb90
add qword [r12], r15
add dword [r12 + 0xc], ebx
mov r15d, dword [rsi + 0x9c]
add r15d, ebx
mov dword [rsi + 0x9c], r15d
cmp r15d, 3
jb 0x140064f20
mov rax, qword [rsi + 0x50]
mov edx, dword [rsi + 0x94]
movzx r8d, byte [rax + rdx]
mov dword [rsi + 0x70], r8d
movzx ecx, byte [rsi + 0x80]
shl r8d, cl
lea ecx, [rdx + 1]
movzx eax, byte [rax + rcx]
xor eax, r8d
and eax, dword [rsi + 0x7c]
mov dword [rsi + 0x70], eax
cmp r15d, 0x105
jbe 0x140064f20
mov ecx, dword [rsi + 0x1718]
mov edi, dword [rsi + 0x58]
cmp edi, ecx
jbe 0x1400651aa
add r15d, dword [rsi + 0x94]
cmp ecx, r15d
jae 0x140065176
sub edi, r15d
cmp edi, 0x102
mov ebx, 0x102
cmovb ebx, edi
mov ecx, r15d
add rcx, qword [rsi + 0x50]
xor edx, edx
mov r8, rbx
call fcn.1400af920
add ebx, r15d
jmp 0x1400651a4
add r15d, 0x102
cmp r15d, ecx
jbe 0x1400651aa
sub r15d, ecx
sub edi, ecx
cmp r15d, edi
cmovb edi, r15d
add rcx, qword [rsi + 0x50]
xor edx, edx
mov r8, rdi
call fcn.1400af920
add edi, dword [rsi + 0x1718]
mov ebx, edi
mov dword [rsi + 0x1718], ebx
movaps xmm6, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret