Function at 0x180018e64
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x10], edx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov rsi, qword [r8 + 0x6e98]
xor r15d, r15d
add rsi, qword [r8 + 0x6ea8]
mov rbx, r8
mov edi, edx
mov r13, rcx
mov r14d, r15d
cmp dword [r8 + 0x2498], r15d
je 0x180018eb2
add r8, 0x249c
call fcn.180009d64
test edi, edi
jne 0x180018eda
mov eax, dword [rbx + 0x245c]
dec eax
and eax, 0xf
mov dword [rbx + 0x245c], eax
mov eax, 0x2430
mov ebp, dword [rbx + 0x4bf4]
mov dword [rbx + 0x4bf8], ebp
jmp 0x180018ee8
mov ebp, dword [rbx + 0x4bf8]
inc rsi
mov eax, 0x2440
movsxd r12, dword [rbx + 0x245c]
mov rcx, r12
shl rcx, 2
lea edx, [r12 + 1]
test r12b, 1
je 0x180018f17
mov rdi, qword [rax + rbx]
and edx, 0xf
mov rax, qword [rax + rbx + 8]
lea r9, [rax + rdx*4]
lea rdx, [rcx + rdi]
jmp 0x180018f2d
mov r9, qword [rax + rbx]
mov r12d, edx
mov rdi, qword [rax + rbx + 8]
lea rdx, [rcx + 4]
add r9, rcx
add rdx, rdi
mov r8, r13
mov rcx, r9
call fcn.180009718
movss xmm3, dword [0x1800543f0]
mov r9d, 0x10
movss xmm4, dword [0x1800543f4]
mov ecx, r9d
movss xmm5, dword [0x180042148]
mov r13d, 0x8000
movsxd rax, r12d
sub rcx, rax
lea r10d, [r9 - 0xc]
mov rax, qword [rbx + 0x2480]
lea rdx, [rax + rcx*4]
mov eax, dword [rbx + 0x4bfc]
add ebp, eax
cmp ebp, r13d
jge 0x180018f8e
add rdi, 0x40
sub rdx, 0xffffffffffffff80
jmp 0x180019116
movss xmm1, dword [rdx]
add rdx, r10
mulss xmm1, dword [rdi]
add rdi, r10
mov r8d, ebp
movss xmm0, dword [rdx]
add rdx, r10
mulss xmm0, dword [rdi]
add rdi, r10
subss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
addss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
subss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
addss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
subss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
addss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
subss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
addss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
subss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
addss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
subss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
addss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
subss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdx, r10
add rdi, r10
addss xmm1, xmm0
movss xmm0, dword [rdx]
mulss xmm0, dword [rdi]
add rdi, r10
shr r8, 0xf
mov eax, r8d
subss xmm1, xmm0
neg eax
mov r10d, 0x7fff
shl eax, 0xf
add ebp, eax
comiss xmm1, xmm3
jbe 0x1800190c9
movzx eax, r10w
jmp 0x1800190d3
comiss xmm4, xmm1
jbe 0x1800190d8
mov eax, 0xffff8000
inc r14d
jmp 0x1800190ea
movaps xmm0, xmm1
addss xmm0, xmm5
movss dword [rsp + 0x70], xmm0
movzx eax, word [rsp + 0x70]
movsx rcx, ax
mov rax, qword [rbx + 0x25d0]
sar rcx, 3
mov cl, byte [rcx + rax]
mov byte [rsi], cl
add rsi, 2
sub r8, 1
jne 0x1800190be
mov eax, dword [rbx + 0x4bfc]
lea r10d, [r8 + 4]
add rdx, 0x44
sub r9d, 1
jne 0x180018f74
add ebp, eax
cmp ebp, r13d
jl 0x1800191f6
movss xmm0, dword [rdx]
mov r9d, 0x7fff
mulss xmm0, dword [rdi]
mov r8d, ebp
movss xmm1, dword [rdx + 0x10]
mulss xmm1, dword [rdi + 0x10]
shr r8, 0xf
movss xmm2, dword [rdx + 8]
mov eax, r8d
mulss xmm2, dword [rdi + 8]
neg eax
shl eax, 0xf
add ebp, eax
addss xmm2, xmm0
movss xmm0, dword [rdx + 0x18]
mulss xmm0, dword [rdi + 0x18]
addss xmm2, xmm1
movss xmm1, dword [rdx + 0x20]
mulss xmm1, dword [rdi + 0x20]
addss xmm2, xmm0
movss xmm0, dword [rdx + 0x28]
mulss xmm0, dword [rdi + 0x28]
addss xmm2, xmm1
movss xmm1, dword [rdx + 0x30]
mulss xmm1, dword [rdi + 0x30]
addss xmm2, xmm0
movss xmm0, dword [rdx + 0x38]
mulss xmm0, dword [rdi + 0x38]
addss xmm2, xmm1
addss xmm2, xmm0
comiss xmm2, xmm3
jbe 0x1800191b7
movzx eax, r9w
jmp 0x1800191c1
comiss xmm4, xmm2
jbe 0x1800191c6
mov eax, 0xffff8000
inc r14d
jmp 0x1800191d8
movaps xmm0, xmm2
addss xmm0, xmm5
movss dword [rsp + 0x70], xmm0
movzx eax, word [rsp + 0x70]
movsx rcx, ax
mov rax, qword [rbx + 0x25d0]
sar rcx, 3
mov cl, byte [rcx + rax]
mov byte [rsi], cl
add rsi, 2
sub r8, 1
jne 0x1800191ac
lea eax, [r12 + r12]
sub rdi, 0x40
movsxd r8, eax
mov r11d, 0xf
add r8, 0xffffffffffffffe0
mov r9d, r11d
lea r8, [rdx + r8*4]
add ebp, dword [rbx + 0x4bfc]
cmp ebp, r13d
jge 0x18001922a
sub r8, 0x40
add rdi, 0xffffffffffffffc0
jmp 0x1800192c2
sub r8, r10
mov rax, r11
movss xmm1, dword [r8]
xorps xmm1, xmmword [0x1800415f0]
mulss xmm1, dword [rdi]
sub r8, r10
add rdi, r10
movss xmm0, dword [r8]
mulss xmm0, dword [rdi]
subss xmm1, xmm0
sub rax, 1
jne 0x180019240
mov edx, ebp
mov r13d, 0x7fff
shr rdx, 0xf
mov eax, edx
neg eax
shl eax, 0xf
add ebp, eax
comiss xmm1, xmm3
jbe 0x180019279
movzx eax, r13w
jmp 0x180019283
comiss xmm4, xmm1
jbe 0x180019288
mov eax, 0xffff8000
inc r14d
jmp 0x18001929a
movaps xmm0, xmm1
addss xmm0, xmm5
movss dword [rsp + 0x70], xmm0
movzx eax, word [rsp + 0x70]
movsx rcx, ax
mov rax, qword [rbx + 0x25d0]
sar rcx, 3
mov cl, byte [rcx + rax]
mov byte [rsi], cl
add rsi, 2
sub rdx, 1
jne 0x18001926e
add rdi, 0xffffffffffffff84
mov r13d, 0x8000
sub r8, 0x40
sub r9d, 1
jne 0x180019212
movsxd rax, dword [rsp + 0x68]
mov dword [rbx + rax*4 + 0x4bf4], ebp
cmp dword [rsp + 0x78], r15d
je 0x1800192fa
test eax, eax
setne r15b
sub rsi, r15
sub rsi, qword [rbx + 0x6e98]
mov qword [rbx + 0x6ea8], rsi
mov rbx, qword [rsp + 0x60]
mov eax, r14d
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret