Function at 0x140059030
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 0x14005905e
lea rcx, [rsp + 0x20]
mov rax, rdi
sub rax, rcx
cmp rax, 0x13
jle 0x140059077
jmp 0x1400590ad
lea rcx, [rsp + 0x21]
mov byte [rsp + 0x20], 0x2d
neg rbx
mov rax, rdi
sub rax, rcx
cmp rax, 0x13
jg 0x1400590ad
mov rdx, rbx
or rdx, 1
bsr rdx, rdx
xor edx, 0xffffffc0
imul edx, edx, 0x4d1
add edx, 0x13911
shr edx, 0xc
lea r8, [0x14008c5e0]
cmp rbx, qword [r8 + rdx*8]
sbb edx, 0
inc edx
cmp rax, rdx
jl 0x140059195
mov rax, rbx
shr rax, 0x20
jne 0x1400590c5
mov edx, ebx
call method.std::__1::__itoa.__base_10_u32_abi:ne190103__char__unsigned_int_
mov rdi, rax
jmp 0x140059195
mov rax, rbx
shr rax, 0xa
cmp rax, 0x9502f9
jb 0x140059106
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:ne190103__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, 0x7ffffffffffffff8
cmp r14, rax
jae 0x1400592a6
cmp r14, 0xa
ja 0x1400591d6
lea eax, [r14 + r14]
mov byte [rsi], al
lea rax, [rsi + 2]
cmp rbx, rdi
je 0x140059215
cmp r14, 0x10
jae 0x14005921a
mov rcx, rax
jmp 0x140059280
mov rax, r14
or rax, 3
lea rcx, [rax + 1]
cmp rax, 0xb
mov r15d, 0xe
cmovne r15, rcx
test r15, r15
js 0x1400592ae
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 0x1400591c8
mov rcx, rax
jmp 0x140059292
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 word cs:[rax + rax]
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 0x140059240
test rdx, rdx
je 0x140059292
nop dword [rax + rax]
movsx eax, byte [rbx]
mov word [rcx], ax
add rcx, 2
inc rbx
cmp rbx, rdi
jne 0x140059280
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:ne190103____const
call method.std.__throw_bad_array_new_length_abi:ne190103___
int3