Function at 0x180022aa0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov rax, rsp
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xd8
movaps xmmword [rax - 0x58], xmm6
movsd xmm6, qword [0x180043c38]
movaps xmmword [rax - 0x68], xmm7
movsd xmm7, qword [0x180043c40]
xor esi, esi
lea rbx, [0x180137860]
lea edi, [rsi + 1]
movaps xmmword [rax - 0x78], xmm8
movsd xmm8, qword [0x1800437c0]
movaps xmmword [rax - 0x88], xmm9
movsd xmm9, qword [0x180043c80]
movaps xmmword [rax - 0x98], xmm10
movaps xmmword [rsp + 0x70], xmm11
movaps xmmword [rsp + 0x60], xmm12
movaps xmmword [rsp + 0x50], xmm13
movaps xmmword [rsp + 0x40], xmm14
movaps xmmword [rsp + 0x30], xmm15
nop
inc esi
movaps xmm0, xmm8
movd xmm1, esi
cvtdq2pd xmm1, xmm1
mulsd xmm1, xmm6
mulsd xmm1, xmm7
call fcn.180024ab0
movaps xmm1, xmm9
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.180024590
cvttsd2si eax, xmm0
sar eax, 4
test dil, al
je 0x180022b5d
sar eax, 1
inc eax
jmp 0x180022b5f
sar eax, 1
lea eax, [rax*4]
mov ecx, edi
lea rdx, [rbx + 0x804]
mov dword [rbx], eax
neg eax
mov dword [rbx + 4], eax
nop word [rax + rax]
mov eax, dword [rbx]
add rdx, 0x800
sar eax, cl
inc ecx
mov dword [rdx - 0x804], eax
neg eax
mov dword [rdx - 0x800], eax
cmp ecx, 0xd
jl 0x180022b80
add rbx, 8
cmp esi, 0x100
jl 0x180022b20
movsd xmm11, qword [0x180043c50]
movsd xmm12, qword [0x180043c30]
movsd xmm14, qword [0x180043c48]
lea rbx, [0x18013e060]
xorps xmm9, xmm9
movsd xmm10, qword [0x180043c58]
movsd xmm15, qword [0x180043c98]
movsd xmm13, qword [0x180043c60]
movd xmm0, edi
cvtdq2pd xmm0, xmm0
mulsd xmm0, xmm11
mulsd xmm0, xmm12
call fcn.180025510
comisd xmm0, xmm9
movaps xmm7, xmm0
jbe 0x180022c18
movaps xmm0, xmm14
jmp 0x180022c1c
movaps xmm0, xmm15
divsd xmm0, xmm7
call fcn.180024840
movaps xmm6, xmm0
movaps xmm0, xmm8
mulsd xmm6, xmm10
call fcn.180024840
divsd xmm6, xmm0
mulsd xmm6, xmm13
mulsd xmm6, xmm8
cvttsd2si ecx, xmm6
test cl, 1
je 0x180022c53
sar ecx, 1
inc ecx
jmp 0x180022c55
sar ecx, 1
xor eax, eax
comisd xmm7, xmm9
setb al
add edi, 2
add rbx, 4
lea eax, [rax + rcx*2]
mov dword [rbx - 4], eax
cmp edi, 0x801
jl 0x180022bf1
xor eax, eax
lea rcx, [0x18013f0a0]
mov qword [rsp + 0x28], 8
mov qword [rsp + 0x20], rcx
lea r9d, [rax + 0x10]
mov qword [rsp + 0x138], rax
nop dword [rax + rax]
xor r15b, r15b
mov r13, rax
mov qword [rsp + 0x130], rcx
mov byte [rsp + 0x120], r15b
mov rax, rcx
nop dword [rax]
movzx r10d, r15b
mov r12, rax
mov qword [rsp + 0x128], 8
mov r11d, r10d
mov ebx, r10d
mov edi, r10d
mov esi, r10d
mov ebp, r10d
mov r14d, r10d
and r11d, 1
and ebx, 2
and edi, 4
and esi, 8
and ebp, 0x10
and r14d, 0x20
and r10d, 0x40
lea r15, [0x180000000]
xor r8d, r8d
xor dl, dl
test r11d, r11d
je 0x180022d1f
lea eax, [r9 - 0x10]
lea rax, [r8 + rax*8]
movzx edx, byte [rax + r15 + 0x43a70]
test ebx, ebx
je 0x180022d33
lea eax, [r9 - 8]
lea rax, [r8 + rax*8]
add dl, byte [rax + r15 + 0x43a70]
test edi, edi
je 0x180022d46
mov eax, r9d
lea rcx, [r8 + rax*8]
add dl, byte [rcx + r15 + 0x43a70]
test esi, esi
je 0x180022d5a
lea eax, [r9 + 8]
lea rax, [r8 + rax*8]
add dl, byte [rax + r15 + 0x43a70]
test ebp, ebp
je 0x180022d6e
lea eax, [r9 + 0x10]
lea rax, [r8 + rax*8]
add dl, byte [rax + r15 + 0x43a70]
test r14d, r14d
je 0x180022d83
lea eax, [r9 + 0x18]
lea rax, [r8 + rax*8]
add dl, byte [rax + r15 + 0x43a70]
test r10d, r10d
je 0x180022d98
lea eax, [r9 + 0x20]
lea rax, [r8 + rax*8]
add dl, byte [rax + r15 + 0x43a70]
movzx ecx, dl
mov rax, r8
add r12, 4
mov dword [r12 - 0x44], ecx
xor rax, 7
inc r8
add rax, r13
mov dword [r15 + rax*4 + 0x13f080], ecx
neg ecx
dec qword [rsp + 0x128]
mov dword [r12 - 4], ecx
mov dword [r15 + rax*4 + 0x13f0c0], ecx
jne 0x180022d07
movzx r15d, byte [rsp + 0x120]
mov rax, qword [rsp + 0x130]
add r13, 0x100
inc r15b
add rax, 0x400
mov byte [rsp + 0x120], r15b
mov qword [rsp + 0x130], rax
cmp r15b, 0x80
jb 0x180022cc0
mov rax, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x20]
inc r9d
add rax, 0x20
sub rcx, 0xffffffffffffff80
dec qword [rsp + 0x28]
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x20], rcx
jne 0x180022ca0
movaps xmm13, xmmword [rsp + 0x50]
movaps xmm14, xmmword [rsp + 0x40]
movaps xmm15, xmmword [rsp + 0x30]
lea r11, [rsp + 0xd8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
movaps xmm10, xmmword [r11 - 0x58]
movaps xmm11, xmmword [r11 - 0x68]
movaps xmm12, xmmword [r11 - 0x78]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret