Function at 0x140022540
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x18], rbx
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0x90
mov rbx, r8
mov edi, edx
xor r15d, r15d
mov qword [rbp - 0x41], r15
mov qword [rbp - 0x39], r15
lea ecx, [r15 + 0x18]
call fcn.1400d4884
mov r14, rax
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp - 0x41], rax
xor r13b, r13b
mov eax, 2
mov dword [rbp + 0x7f], eax
cmp edi, eax
jle 0x14002286c
lea rdi, [rbx + 0x10]
mov qword [rbp - 0x49], rdi
lea rcx, [0x1400e9220]
mov rdx, qword [rbp - 0x39]
movabs r8, 0xaaaaaaaaaaaaaaa
test rdx, rdx
je 0x140022670
cmp rdx, r8
je 0x1400228d0
lea rax, [rbp - 0x41]
mov qword [rbp - 0x31], rax
mov qword [rbp - 0x29], r15
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400d4884
mov dword [rax + 0x10], 0x39
inc qword [rbp - 0x39]
mov rcx, qword [r14 + 8]
mov qword [rax], r14
mov qword [rax + 8], rcx
mov qword [rbp - 0x29], r15
mov qword [r14 + 8], rax
mov qword [rcx], rax
mov rbx, qword [rbp - 0x41]
movabs rax, 0xaaaaaaaaaaaaaaa
cmp qword [rbp - 0x39], rax
je 0x1400228d0
lea rax, [rbp - 0x41]
mov qword [rbp - 0x21], rax
mov qword [rbp - 0x19], r15
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400d4884
mov dword [rax + 0x10], 0xb9
inc qword [rbp - 0x39]
mov rcx, qword [rbx + 8]
mov qword [rax], rbx
mov qword [rax + 8], rcx
mov qword [rbp - 0x19], r15
mov qword [rbx + 8], rax
mov qword [rcx], rax
mov rdx, qword [rbp - 0x39]
mov r14, qword [rbp - 0x41]
mov eax, dword [rbp + 0x7f]
movabs r8, 0xaaaaaaaaaaaaaaa
lea rcx, [0x1400e9220]
mov rsi, qword [rdi]
mov rdi, 0xffffffffffffffff
nop word [rax + rax]
inc rdi
cmp byte [rsi + rdi], 0
jne 0x140022680
mov r12, r15
test rdi, rdi
je 0x140022800
jmp 0x1400226aa
movabs r8, 0xaaaaaaaaaaaaaaa
inc r12
movzx eax, byte [rsi]
lea rsi, [rsi + 1]
cmp al, 0x80
jae 0x1400227ed
lea r15, [rcx + rax*2]
movzx ecx, byte [r15]
test cl, cl
je 0x1400227ea
movzx eax, byte [r15 + 1]
and al, 1
cmp r13b, al
je 0x140022738
movzx r13d, al
movzx ebx, al
xor ebx, 1
shl ebx, 7
or ebx, 0x2a
cmp rdx, r8
je 0x1400228d0
lea rax, [rbp - 0x41]
mov qword [rbp - 0x11], rax
mov qword [rbp - 9], 0
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400d4884
mov dword [rax + 0x10], ebx
inc qword [rbp - 0x39]
mov rcx, qword [r14 + 8]
mov qword [rax], r14
mov qword [rax + 8], rcx
mov qword [rbp - 9], 0
mov qword [r14 + 8], rax
mov qword [rcx], rax
movzx ecx, byte [r15]
mov rdx, qword [rbp - 0x39]
mov r14, qword [rbp - 0x41]
movzx ebx, cl
movabs rax, 0xaaaaaaaaaaaaaaa
cmp rdx, rax
je 0x1400228d0
lea rax, [rbp - 0x41]
mov qword [rbp - 1], rax
mov qword [rbp + 7], 0
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400d4884
mov dword [rax + 0x10], ebx
inc qword [rbp - 0x39]
mov rcx, qword [r14 + 8]
mov qword [rax], r14
mov qword [rax + 8], rcx
mov qword [rbp + 7], 0
mov qword [r14 + 8], rax
mov qword [rcx], rax
movzx r14d, byte [r15]
bts r14d, 7
mov rbx, qword [rbp - 0x41]
movabs rax, 0xaaaaaaaaaaaaaaa
cmp qword [rbp - 0x39], rax
je 0x1400228d0
lea rax, [rbp - 0x41]
mov qword [rbp + 0xf], rax
xor r15d, r15d
mov qword [rbp + 0x17], r15
lea ecx, [r15 + 0x18]
call fcn.1400d4884
mov dword [rax + 0x10], r14d
inc qword [rbp - 0x39]
mov rcx, qword [rbx + 8]
mov qword [rax], rbx
mov qword [rax + 8], rcx
mov qword [rbp + 0x17], r15
mov qword [rbx + 8], rax
mov qword [rcx], rax
mov rdx, qword [rbp - 0x39]
mov r14, qword [rbp - 0x41]
jmp 0x1400227ed
xor r15d, r15d
cmp r12, rdi
lea rcx, [0x1400e9220]
jb 0x1400226a0
mov eax, dword [rbp + 0x7f]
inc eax
mov dword [rbp + 0x7f], eax
mov rdi, qword [rbp - 0x49]
add rdi, 8
mov qword [rbp - 0x49], rdi
cmp eax, dword [rbp + 0x6f]
lea rcx, [0x1400e9220]
jl 0x1400225b2
test r13b, r13b
je 0x14002286c
movabs rax, 0xaaaaaaaaaaaaaaa
cmp rdx, rax
je 0x1400228d0
lea rax, [rbp - 0x41]
mov qword [rbp + 0xf], rax
mov qword [rbp + 0x17], r15
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400d4884
mov dword [rax + 0x10], 0xaa
inc qword [rbp - 0x39]
mov rcx, qword [r14 + 8]
mov qword [rax], r14
mov qword [rax + 8], rcx
mov qword [r14 + 8], rax
mov qword [rcx], rax
lea rdx, [rbp - 0x41]
mov rcx, qword [rbp + 0x67]
call fcn.1400223d0
mov edi, eax
mov rdx, qword [rbp - 0x41]
mov rcx, qword [rdx + 8]
mov qword [rcx], r15
mov rcx, qword [rdx]
test rcx, rcx
je 0x1400228a5
nop
mov rbx, qword [rcx]
mov edx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.1400d48c0
mov rcx, rbx
test rbx, rbx
jne 0x140022890
mov edx, reloc.OLEAUT32.dll_SafeArrayGetElement
mov rcx, qword [rbp - 0x41]
call fcn.1400d48c0
mov eax, edi
mov rbx, qword [rsp + 0xe0]
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rcx, str.list_too_long
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_
int3