Function at 0x140017800
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 0x14001782e
lea rcx, [rsp + 0x20]
mov rax, rdi
sub rax, rcx
cmp rax, 0x13
jle 0x140017847
jmp 0x14001787d
lea rcx, [rsp + 0x21]
mov byte [rsp + 0x20], 0x2d
neg rbx
mov rax, rdi
sub rax, rcx
cmp rax, 0x13
jg 0x14001787d
mov rdx, rbx
or rdx, 1
bsr rdx, rdx
xor edx, 0xffffffc0
imul edx, edx, 0x4d1
add edx, 0x13911
shr edx, 0xc
lea r8, [0x1400a24d0]
cmp rbx, qword [r8 + rdx*8]
sbb edx, 0
inc edx
cmp rax, rdx
jl 0x140017965
mov rax, rbx
shr rax, 0x20
jne 0x140017895
mov edx, ebx
call method.std::__1::__itoa.__base_10_u32_abi:ue170005__char__unsigned_int_
mov rdi, rax
jmp 0x140017965
mov rax, rbx
shr rax, 0xa
cmp rax, 0x9502f9
jb 0x1400178d6
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:ue170005__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 0x140017a56
cmp r14, 0xa
ja 0x1400179a6
lea eax, [r14 + r14]
mov byte [rsi], al
lea rax, [rsi + 2]
cmp rbx, rdi
je 0x1400179d3
cmp r14, 0x10
jae 0x1400179d8
mov rcx, rax
jmp 0x140017a30
mov r15, r14
or r15, 7
inc r15
js 0x140017a5e
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 0x140017998
mov rcx, rax
jmp 0x140017a42
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 0x1400179f0
test rdx, rdx
je 0x140017a42
nop dword [rax + rax]
movsx eax, byte [rbx]
mov word [rcx], ax
inc rbx
add rcx, 2
cmp rbx, rdi
jne 0x140017a30
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:ue170005____const
call method.std.__throw_bad_array_new_length_abi:ue170005___
int3