Function at 0x140063470
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 0x1400634fd
mov rax, qword [rsi]
cmp dword [rax + 8], 0
je 0x140063706
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 0x14006362a
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 0x14006358f
lea r9d, [rdx - 1]
lea r8d, [rax - 1]
lea r10, [rax + rax]
sub r10, r8
sub r10, r8
add r10, rcx
add r10, 0xfffffffffffffffe
xor r11d, r11d
nop
movdqu xmm1, xmmword [r10 + r11*2]
psubusw xmm1, xmm7
movdqu xmmword [r10 + r11*2], xmm1
add r11, 8
cmp r11d, r9d
jbe 0x140063570
cmp eax, edx
jne 0x140063595
jmp 0x1400635c8
lea r8d, [rax - 1]
xor edx, edx
mov r8d, r8d
mov edx, edx
lea r9, [rax + rax]
add r8, r8
sub r9, r8
add rcx, r9
add rcx, 0xfffffffffffffffe
nop dword [rax + 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 0x1400635b0
mov rax, qword [rsi + 0x60]
cmp dword [rsp + 0x38], 0
je 0x140063604
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 0x1400635e0
mov rdx, qword [rsp + 0x38]
mov ecx, edx
cmp edi, edx
jne 0x140063606
jmp 0x140063624
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 0x140063610
add ebx, edi
movd eax, xmm0
mov r12, qword [rsi]
mov ecx, dword [r12 + 8]
test ecx, ecx
je 0x14006377a
mov r15d, dword [rsi + 0x9c]
cmp ecx, ebx
cmovb ebx, ecx
test ebx, ebx
je 0x1400636b8
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 0x140063680
cmp eax, 1
jne 0x140063696
mov rdx, qword [r12]
mov ecx, dword [r12 + 0x4c]
mov r8d, ebx
call fcn.140068cc0
jmp 0x140063691
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 0x1400634f0
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 0x1400634f0
mov ecx, dword [rsi + 0x1718]
mov edi, dword [rsi + 0x58]
cmp edi, ecx
jbe 0x14006377a
add r15d, dword [rsi + 0x94]
cmp ecx, r15d
jae 0x140063746
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 0x140063774
add r15d, 0x102
cmp r15d, ecx
jbe 0x14006377a
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