Function at 0x140033910
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 0x14003393e
lea rcx, [rsp + 0x20]
mov rax, rdi
sub rax, rcx
cmp rax, 0x13
jle 0x140033957
jmp 0x14003398d
lea rcx, [rsp + 0x21]
mov byte [rsp + 0x20], 0x2d
neg rbx
mov rax, rdi
sub rax, rcx
cmp rax, 0x13
jg 0x14003398d
mov rdx, rbx
or rdx, 1
bsr rdx, rdx
xor edx, 0xffffffc0
imul edx, edx, 0x4d1
add edx, 0x13911
shr edx, 0xc
lea r8, [0x1400ab0c0]
cmp rbx, qword [r8 + rdx*8]
sbb edx, 0
inc edx
cmp rax, rdx
jl 0x140033a75
mov rax, rbx
shr rax, 0x20
jne 0x1400339a5
mov edx, ebx
call method.std::__1::__itoa.__base_10_u32_abi:ne180100__char__unsigned_int_
mov rdi, rax
jmp 0x140033a75
mov rax, rbx
shr rax, 0xa
cmp rax, 0x9502f9
jb 0x1400339e6
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:ne180100__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
movabs rax, 0x7ffffffffffffff7
lea rbx, [rsp + 0x20]
mov r14, rdi
sub r14, rbx
cmp r14, rax
ja 0x140033b86
cmp r14, 0xa
ja 0x140033ab6
lea eax, [r14 + r14]
mov byte [rsi], al
lea rax, [rsi + 2]
cmp rbx, rdi
je 0x140033af6
cmp r14, 0x10
jae 0x140033afb
mov rcx, rax
jmp 0x140033b60
add rax, 5
and rax, r14
add rax, 4
mov r15, r14
or r15, 3
cmp r15, 0xb
cmove r15, rax
inc r15
js 0x140033b8e
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 0x140033aa8
mov rcx, rax
jmp 0x140033b72
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 0x140033b20
test rdx, rdx
je 0x140033b72
nop dword [rax + rax]
movsx eax, byte [rbx]
mov word [rcx], ax
inc rbx
add rcx, 2
cmp rbx, rdi
jne 0x140033b60
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:ne180100____const
call method.std.__throw_bad_array_new_length_abi:ne180100___
int3