Function at 0x14002aa90
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push rbx
mov rbp, rsp
sub rsp, 0x48
movsd xmm0, qword [0x14002d4e0]
movsd xmm1, qword [0x14002d720]
movsd qword [rbp + 0x20], xmm0
movsd xmm0, qword [0x14002d8a0]
movsd qword [rbp + 0x28], xmm1
movsd qword [rbp + 0x18], xmm0
movsd xmm1, qword [rbp + 0x18]
movaps xmmword [rsp + 0x30], xmm6
movsd xmm6, qword [0x14002d670]
divsd xmm1, xmm6
movsd qword [rbp + 0x18], xmm1
movsd xmm0, qword [rbp + 0x20]
mulsd xmm0, xmm6
addsd xmm0, qword [rbp + 0x28]
movsd qword [rbp + 0x20], xmm0
movsd xmm1, qword [rbp + 0x20]
movsd xmm0, qword [rbp + 0x18]
mulsd xmm1, xmm0
movsd qword [rbp + 0x18], xmm1
movsd xmm2, qword [rbp + 0x18]
movsd xmm0, qword [rbp + 0x20]
addsd xmm2, xmm0
cvttsd2si eax, xmm2
mov dword [rbp + 0x18], eax
mov eax, 0x51eb851f
mov ecx, dword [rbp + 0x18]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0x64
sub ecx, eax
mov eax, 0x51eb851f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x28], xmm0
mov ecx, dword [rbp + 0x18]
imul ecx
mov ecx, 0x348
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movd xmm0, edx
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x20], xmm0
movsd xmm1, qword [rbp + 0x20]
movsd qword [rbp + 0x18], xmm1
movsd xmm0, qword [rbp + 0x28]
movsd qword [rbp + 0x18], xmm0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
movsd xmm0, qword [0x14002d9c8]
movsd xmm1, qword [0x14002d7a0]
movsd qword [rbp + 0x20], xmm0
movsd xmm0, qword [0x14002d4f8]
movsd qword [rbp + 0x28], xmm1
movsd qword [rbp + 0x18], xmm0
movsd xmm1, qword [rbp + 0x18]
divsd xmm1, xmm6
movsd qword [rbp + 0x18], xmm1
movsd xmm0, qword [rbp + 0x20]
mulsd xmm0, xmm6
addsd xmm0, qword [rbp + 0x28]
movsd qword [rbp + 0x20], xmm0
movsd xmm1, qword [rbp + 0x20]
movsd xmm0, qword [rbp + 0x18]
mulsd xmm1, xmm0
movsd qword [rbp + 0x18], xmm1
movsd xmm2, qword [rbp + 0x18]
movsd xmm0, qword [rbp + 0x20]
addsd xmm2, xmm0
cvttsd2si eax, xmm2
mov dword [rbp + 0x18], eax
mov eax, 0x51eb851f
mov r8d, dword [rbp + 0x18]
imul r8d
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x64
mov eax, 0x51eb851f
sub r8d, ecx
movd xmm0, r8d
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x28], xmm0
mov ecx, dword [rbp + 0x18]
imul ecx
mov ecx, 0xcd0
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movd xmm0, edx
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x20], xmm0
movsd xmm1, qword [rbp + 0x20]
movsd qword [rbp + 0x18], xmm1
movsd xmm0, qword [rbp + 0x28]
movsd qword [rbp + 0x18], xmm0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp - 0x28], 0x60
xor ebx, ebx
mov dword [rbp + 0x28], 1
mov edx, ebx
mov dword [rbp + 0x18], ebx
mov dword [rbp + 0x30], ebx
mov dword [rbp + 0x20], 1
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp - 0x28]
nop dword [rax]
cmp edx, 7
jge 0x14002acc3
mov eax, dword [rbp + 0x18]
cmp eax, 0x418937
jg 0x14002acbc
mov ecx, dword [rbp + 0x20]
inc edx
mov eax, dword [rbp + 0x30]
add ecx, eax
mov dword [rbp + 0x18], ecx
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x20], eax
mov eax, dword [rbp + 0x28]
inc eax
mov dword [rbp + 0x28], eax
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp - 0x28]
cmp ecx, eax
jne 0x14002ac80
jmp 0x14002acc3
mov dword [rbp + 0x18], 0xffffffff
mov eax, dword [rbp + 0x28]
xor edx, edx
movss xmm0, dword [0x14002dbb0]
mov dword [rbp + 0x18], eax
mov dword [rbp + 0x20], 0x8e
mov byte [rbp + 0x18], 0xc4
movss dword [rbp - 0x28], xmm0
movd xmm1, dword [rbp + 0x20]
cvtdq2ps xmm1, xmm1
addss xmm1, dword [rbp - 0x28]
cvtps2pd xmm0, xmm1
movsd qword [rbp - 0x20], xmm0
movd xmm1, dword [rbp + 0x20]
cvtdq2pd xmm1, xmm1
mulsd xmm1, qword [rbp - 0x20]
cvttsd2si eax, xmm1
mov dword [rbp + 0x28], eax
movd xmm1, dword [rbp + 0x28]
movsd xmm0, qword [rbp - 0x20]
cvtdq2pd xmm1, xmm1
subsd xmm1, xmm0
cvttsd2si rax, xmm1
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x30]
mov ecx, dword [rbp + 0x20]
div ecx
mov word [rbp + 0x18], ax
movsx ecx, word [rbp + 0x18]
mov eax, dword [rbp + 0x30]
add eax, ecx
mov dword [rbp + 0x18], eax
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
cmp ecx, eax
seta byte [rbp + 0x18]
movzx eax, byte [rbp + 0x18]
test al, al
mov eax, dword [rbp + 0x20]
jne 0x14002ad59
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x18], eax
xor edx, edx
mov eax, dword [rbp + 0x18]
mov byte [rbp + 0x18], al
movsx eax, byte [rbp + 0x18]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [rbp - 0x28]
movss dword [rbp + 0x18], xmm0
movss xmm0, dword [rbp + 0x18]
cvtps2pd xmm1, xmm0
mulsd xmm1, qword [rbp - 0x20]
movsd qword [rbp + 0x20], xmm1
movsd xmm0, qword [rbp + 0x20]
cvttsd2si eax, xmm0
mov dword [rbp + 0x20], eax
movd xmm1, dword [rbp + 0x20]
movss xmm0, dword [rbp + 0x18]
cvtdq2ps xmm1, xmm1
subss xmm1, xmm0
cvttss2si rax, xmm1
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x20]
div ecx
mov word [rbp + 0x18], ax
movsx ecx, word [rbp + 0x18]
mov eax, dword [rbp + 0x28]
add eax, ecx
mov dword [rbp + 0x28], eax
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
cmp ecx, eax
seta byte [rbp + 0x18]
movzx eax, byte [rbp + 0x18]
test al, al
mov eax, dword [rbp + 0x20]
jne 0x14002ade2
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x18], eax
mov edx, ebx
mov eax, dword [rbp + 0x18]
mov byte [rbp + 0x18], al
mov dword [rbp + 0x20], 0x56
mov dword [rbp + 0x30], ebx
mov dword [rbp + 0x28], ebx
mov dword [rbp + 0x18], 1
mov dword [rbp - 0x28], ebx
mov eax, dword [rbp + 0x20]
cmp edx, 0xa
jge 0x14002ae69
mov eax, dword [rbp + 0x20]
inc edx
mov dword [rbp + 0x30], eax
mov dword [rbp + 0x20], 0xad
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x28], eax
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
cmp ecx, eax
jne 0x14002ae35
mov eax, dword [rbp + 0x18]
inc eax
mov dword [rbp + 0x18], eax
jmp 0x14002ae45
mov ecx, dword [rbp - 0x28]
mov eax, dword [rbp + 0x18]
cmp ecx, eax
jge 0x14002ae45
mov eax, dword [rbp + 0x18]
mov dword [rbp - 0x28], eax
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
cmp ecx, eax
jle 0x14002ae56
mov dword [rbp + 0x18], 1
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
cmp ecx, eax
jge 0x14002ae04
mov dword [rbp + 0x18], 1
jmp 0x14002ae04
mov eax, dword [rbp - 0x28]
mov ecx, 0x660
mov dword [rbp + 0x18], eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x2c8
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x18], 0x71
mov edx, ebx
mov eax, dword [rbp + 0x18]
mov dword [rbp - 0x28], eax
mov dword [rbp + 0x20], ebx
mov dword [rbp + 0x28], ebx
mov dword [rbp + 0x30], ebx
mov dword [rbp + 0x18], 0x4c
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x20], eax
mov dword [rbp + 0x18], 0x70
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x18]
cmp edx, 0xc
jge 0x14002aef9
mov eax, dword [rbp + 0x18]
inc edx
test eax, eax
je 0x14002aef9
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp - 0x28]
cmp ecx, eax
jle 0x14002aee4
mov ecx, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
cmp eax, ecx
jle 0x14002aee4
mov eax, dword [rbp + 0x30]
inc eax
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x20]
mov dword [rbp - 0x28], eax
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x20], eax
mov dword [rbp + 0x18], 0x79
jmp 0x14002aeb1
mov eax, dword [rbp + 0x30]
movsd xmm0, qword [0x14002da00]
mov dword [rbp + 0x18], eax
mov dword [rbp + 0x28], 0x70
mov dword [rbp + 0x18], 0x27
mov dword [rbp + 0x20], 0xbd
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x18]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x28]
mov ecx, ebx
mov eax, dword [rbp + 0x20]
mov ecx, 0x10
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x18], eax
mov edx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov eax, dword [rbp + 0x30]
mov dword [rbp + 0x30], ebx
movsd qword [rbp + 0x18], xmm0
movsd xmm1, qword [rbp + 0x18]
movsd xmm2, qword [rbp + 0x18]
cvttsd2si eax, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm2, xmm0
mulsd xmm2, qword [0x14002d4b0]
cvttsd2si eax, xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x18], xmm0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x18], 0xc9
mov dword [rbp + 0x20], 0xfb
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x18]
imul ecx, eax
mov dword [rbp + 0x18], ecx
mov dword [rbp + 0x28], 0x128
mov dword [rbp + 0x18], 0x69
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x20]
imul ecx, eax
mov eax, dword [rbp + 0x28]
add eax, ecx
mov dword [rbp + 0x30], eax
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x18]
imul ecx, eax
mov eax, dword [rbp + 0x20]
imul eax, ecx
cdq
sub eax, edx
mov edx, dword [rbp + 0x18]
mov ecx, dword [rbp + 0x28]
imul edx, ecx
mov ecx, 0x390
sar eax, 1
add edx, eax
mov dword [rbp + 0x18], edx
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x198
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
movsd xmm0, qword [0x14002d8d0]
movsd qword [rbp + 0x18], xmm0
movsd xmm1, qword [rbp + 0x18]
movsd xmm2, qword [rbp + 0x18]
cvttsd2si eax, xmm1
movd xmm0, eax
cvtdq2pd xmm0, xmm0
subsd xmm2, xmm0
mov ecx, 0x3c0
mulsd xmm2, qword [0x14002d4b0]
cvttsd2si eax, xmm2
movd xmm0, eax
cvtdq2pd xmm0, xmm0
movsd qword [rbp + 0x18], xmm0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x18], 0x1b
mov ecx, 0x350
mov eax, dword [rbp + 0x18]
xor eax, 0xff
mov dword [rbp + 0x18], eax
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x18], eax
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x8c0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0xed8
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x740
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x278
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x3f0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov ecx, 0x1d0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]
mov dword [rbp + 0x28], 0x22
mov dword [rbp + 0x18], 0x2e
mov dword [rbp + 0x20], 0xd0
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x18]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x18]
mov ecx, dword [rbp + 0x20]
mov eax, dword [rbp + 0x28]
mov eax, dword [rbp + 0x20]
mov dword [rbp + 0x30], eax
mov eax, dword [rbp + 0x28]
mov dword [rbp + 0x28], eax
mov eax, dword [rbp + 0x18]
mov dword [rbp + 0x18], eax
mov ecx, dword [rbp + 0x18]
mov eax, dword [rbp + 0x28]
mov ecx, 0x480
mov eax, dword [rbp + 0x30]
mov dword [rbp + 0x30], ebx
mov byte [rbp + 0x18], 0x61
movzx eax, byte [rbp + 0x18]
inc al
mov byte [rbp + 0x18], al
movzx eax, byte [rbp + 0x18]
mov byte [rbp + 0x18], al
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
pop rbx
pop rbp
jmp qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new___unsigned_long_long_unsigned___int64__]