Function at 0x14000e970
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x40
mov rbx, rdx
mov rsi, rcx
lea rdi, [rsp + 0x34]
test rdx, rdx
js 0x14000e99e
lea rcx, [rsp + 0x20]
mov rax, rdi
sub rax, rcx
cmp rax, 0x13
jle 0x14000e9b7
jmp 0x14000e9ed
lea rcx, [rsp + 0x21]
mov byte [rsp + 0x20], 0x2d
neg rbx
mov rax, rdi
sub rax, rcx
cmp rax, 0x13
jg 0x14000e9ed
mov rdx, rbx
or rdx, 1
bsr rdx, rdx
xor edx, 0xffffffc0
imul edx, edx, 0x4d1
add edx, 0x13911
shr edx, 0xc
lea r8, [0x1400856a0]
cmp rbx, qword [r8 + rdx*8]
sbb edx, 0
inc edx
cmp rax, rdx
jl 0x14000ead5
mov rax, rbx
shr rax, 0x20
jne 0x14000ea05
mov edx, ebx
call method.std::__1::__itoa.__base_10_u32_abi:ue170006__char__unsigned_int_
mov rdi, rax
jmp 0x14000ead5
mov rax, rbx
shr rax, 0xa
cmp rax, 0x9502f9
jb 0x14000ea46
movabs rdx, 0xdbe6fecebdedd5bf
mov rax, rbx
mul rdx
mov rdi, rdx
shr rdi, 0x21
mov edx, edi
call method.std::__1::__itoa.__base_10_u32_abi:ue170006__char__unsigned_int_
mov rcx, rax
movabs rax, 0x2540be400
imul rax, rdi
sub rbx, rax
lea r8, str.00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
movabs rdx, 0xabcc77118461cefd
mov rax, rbx
mul rdx
shr rdx, 0x1a
movzx eax, word [r8 + rdx*2]
mov word [rcx], ax
imul rax, rdx, 0x5f5e100
sub rbx, rax
imul rax, rbx, 0x8637bd1
shr rax, 0x2f
movzx edx, word [r8 + rax*2]
mov word [rcx + 2], dx
imul eax, eax, 0xf4240
sub ebx, eax
imul rax, rbx, 0x68db9
shr rax, 0x20
movzx edx, word [r8 + rax*2]
mov word [rcx + 4], dx
imul eax, eax, 0x2710
sub ebx, eax
imul eax, ebx, 0x147b
shr eax, 0x13
movzx edx, word [r8 + rax*2]
mov word [rcx + 6], dx
imul eax, eax, 0x64
sub ebx, eax
movzx eax, bx
movzx eax, word [r8 + rax*2]
mov word [rcx + 8], ax
add rcx, 0xa
mov rdi, rcx
lea rbx, [rsp + 0x20]
mov r14, rdi
sub r14, rbx
movabs rax, 0x7ffffffffffffff0
cmp r14, rax
jae 0x14000ebc6
cmp r14, 0xa
ja 0x14000eb16
lea eax, [r14 + r14]
mov byte [rsi], al
lea rax, [rsi + 2]
cmp rbx, rdi
je 0x14000eb43
cmp r14, 0x10
jae 0x14000eb48
mov rcx, rax
jmp 0x14000eba0
mov r15, r14
or r15, 7
inc r15
js 0x14000ebce
lea rcx, [r15 + r15]
call sym..weak._Znwy.default.__clang_call_terminate
mov qword [rsi + 0x10], rax
or r15, 1
mov qword [rsi], r15
mov qword [rsi + 8], r14
cmp rbx, rdi
jne 0x14000eb08
mov rcx, rax
jmp 0x14000ebb2
mov edx, edi
and edx, 0xf
sub r14, rdx
lea rcx, [rax + r14*2]
lea rbx, [rsp + r14]
add rbx, 0x20
xor r8d, r8d
nop
movq xmm0, qword [rsp + r8 + 0x20]
punpcklbw xmm0, xmm0
movq xmm1, qword [rsp + r8 + 0x28]
punpcklbw xmm1, xmm1
psraw xmm0, 8
psraw xmm1, 8
movdqu xmmword [rax + r8*2], xmm0
movdqu xmmword [rax + r8*2 + 0x10], xmm1
add r8, 0x10
cmp r14, r8
jne 0x14000eb60
test rdx, rdx
je 0x14000ebb2
nop dword [rax + rax]
movsx eax, byte [rbx]
mov word [rcx], ax
inc rbx
add rcx, 2
cmp rbx, rdi
jne 0x14000eba0
mov word [rcx], 0
mov rax, rsi
add rsp, 0x40
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov rcx, rsi
call method.std::__1::basic_string_wchar_t__std::__1::char_traits_wchar_t___std::__1::allocator_wchar_t___.__throw_length_error_abi:ue170006____const
call method.std.__throw_bad_array_new_length_abi:ue170006___
int3