Function at 0x10080a10
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xf8
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x60], xmm15
movdqa xmmword [rbp + 0x50], xmm14
movdqa xmmword [rbp + 0x40], xmm13
movdqa xmmword [rbp + 0x30], xmm12
movdqa xmmword [rbp + 0x20], xmm11
movdqa xmmword [rbp + 0x10], xmm10
movdqa xmmword [rbp], xmm9
movdqa xmmword [rbp - 0x10], xmm8
movdqa xmmword [rbp - 0x20], xmm7
movdqa xmmword [rbp - 0x30], xmm6
mov rsi, r8
test r8, r8
js 0x10080eda
mov rbx, rdx
mov rdi, rcx
je 0x10080d67
mov rax, qword [0x10160108]
movzx eax, byte [rax]
mov r14d, 1
mov edx, 1
mov rcx, rsi
call sym.__rust_alloc
test rax, rax
je 0x10080edd
xor r12d, r12d
cmp rsi, 0x10
jb 0x10080d6f
movabs rcx, 0x8080808080808080
movapd xmm0, xmmword [0x10151020]
pxor xmm1, xmm1
movdqa xmm4, xmmword [0x10151050]
movdqa xmm5, xmmword [0x10151060]
movdqa xmm6, xmmword [0x10151070]
movdqa xmm7, xmmword [0x10151080]
movdqa xmm8, xmmword [0x10151090]
movdqa xmm9, xmmword [0x101510a0]
movdqa xmm10, xmmword [0x101510b0]
movdqa xmm11, xmmword [0x101510c0]
movdqa xmm15, xmmword [0x10151100]
movdqa xmm2, xmmword [0x10151110]
nop dword [rax + rax]
mov r11, qword [rbx + r12]
mov rdx, qword [rbx + r12 + 8]
mov r8, rdx
or r8, r11
test r8, rcx
jne 0x10080d6f
mov r8, r11
mov r9, r11
mov r10, r11
mov r14, r11
shr r11d, 8
movd xmm12, r11d
movdqu xmm3, xmmword [rbx + r12]
shr r14, 0x20
pshufd xmm13, xmm3, 0x44
movdqa xmm14, xmm3
psrlq xmm14, 0x10
psrlq xmm13, 0x18
movsd xmm13, xmm14
movd xmm14, r14d
shr r10, 0x28
punpcklqdq xmm3, xmm12
movd xmm12, r10d
andpd xmm13, xmm0
pand xmm3, xmm0
packuswb xmm3, xmm13
pshufd xmm13, xmm14, 0x50
movdqa xmm14, xmmword [0x10151030]
pandn xmm14, xmm13
psllq xmm12, 0x28
movdqa xmm13, xmmword [0x10151040]
pandn xmm13, xmm12
shr r9, 0x30
por xmm13, xmm14
movd xmm12, r9d
shr r8, 0x38
packuswb xmm3, xmm1
packuswb xmm3, xmm1
por xmm13, xmm3
psllq xmm12, 0x30
movdqa xmm3, xmm4
pandn xmm3, xmm12
movd xmm12, r8d
mov r8d, edx
shr r8d, 8
pand xmm13, xmm4
por xmm3, xmm13
pand xmm3, xmm5
psllq xmm12, 0x38
movdqa xmm13, xmm5
pandn xmm13, xmm12
por xmm13, xmm3
movd xmm3, edx
pshufd xmm3, xmm3, 0x44
movdqa xmm12, xmm6
pandn xmm12, xmm3
movd xmm3, r8d
mov r8d, edx
shr r8d, 0x10
pand xmm13, xmm6
por xmm12, xmm13
pslldq xmm3, 9
movdqa xmm13, xmm7
pandn xmm13, xmm3
movd xmm3, r8d
mov r8d, edx
shr r8d, 0x18
pand xmm12, xmm7
por xmm13, xmm12
pslldq xmm3, 0xa
movdqa xmm12, xmm8
pandn xmm12, xmm3
movd xmm3, r8d
mov r8, rdx
shr r8, 0x20
pand xmm13, xmm8
por xmm12, xmm13
pslldq xmm3, 0xb
movdqa xmm13, xmm9
pandn xmm13, xmm3
movd xmm3, r8d
mov r8, rdx
shr r8, 0x28
pand xmm12, xmm9
por xmm13, xmm12
pshufd xmm3, xmm3, 0
movdqa xmm12, xmm10
pandn xmm12, xmm3
movd xmm3, r8d
shr rdx, 0x30
pand xmm13, xmm10
por xmm12, xmm13
pand xmm12, xmm11
pslldq xmm3, 0xd
movdqa xmm13, xmm11
pandn xmm13, xmm3
por xmm13, xmm12
pand xmm13, xmmword [0x101510d0]
movd xmm3, edx
pslldq xmm3, 0xe
por xmm3, xmm13
pand xmm3, xmmword [0x101510e0]
movzx edx, byte [rbx + r12 + 0xf]
movd xmm12, edx
pslldq xmm12, 0xf
por xmm12, xmm3
movdqa xmm3, xmm12
paddb xmm3, xmmword [0x101510f0]
movdqa xmm13, xmm3
pminub xmm13, xmm15
pcmpeqb xmm13, xmm3
pand xmm13, xmm2
pxor xmm13, xmm12
movdqu xmmword [rax + r12], xmm13
lea rdx, [r12 + 0x10]
add r12, 0x20
cmp r12, rsi
mov r12, rdx
jbe 0x10080b20
mov r12, rdx
jmp 0x10080d6f
mov eax, 1
xor r12d, r12d
mov qword [rbp - 0x58], rsi
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], r12
cmp r12, rsi
je 0x10080e7c
add rsi, rbx
add r12, rbx
lea rbx, [rbp - 0x3c]
lea r14, [rbp - 0x58]
nop word cs:[rax + rax]
movzx eax, byte [r12]
test al, al
js 0x10080db0
inc r12
mov edx, eax
jmp 0x10080e10
mov edx, eax
and edx, 0x1f
movzx r8d, byte [r12 + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x10080df3
movzx ecx, byte [r12 + 2]
shl r8d, 6
and ecx, 0x3f
or ecx, r8d
cmp al, 0xf0
jb 0x10080dff
movzx eax, byte [r12 + 3]
add r12, 4
and edx, 7
shl edx, 0x12
shl ecx, 6
and eax, 0x3f
or eax, ecx
or edx, eax
jmp 0x10080e10
add r12, 2
shl edx, 6
or edx, r8d
jmp 0x10080e10
add r12, 3
shl edx, 0xc
or edx, ecx
nop dword [rax + rax]
mov rcx, rbx
call sym.core::unicode::unicode_data::conversions::to_upper::h4c30b4b1ccbcb3e3
mov r15d, dword [rbp - 0x38]
test r15d, r15d
je 0x10080e50
mov edx, dword [rbp - 0x3c]
mov r13d, dword [rbp - 0x34]
test r13d, r13d
je 0x10080e60
mov rcx, r14
call sym.alloc::string::String::push::h0c450784edf638d1
mov rcx, r14
mov edx, r15d
call sym.alloc::string::String::push::h0c450784edf638d1
mov r15d, r13d
jmp 0x10080e68
mov r15d, dword [rbp - 0x3c]
jmp 0x10080e68
mov rcx, r14
call sym.alloc::string::String::push::h0c450784edf638d1
mov rcx, r14
mov edx, r15d
call sym.alloc::string::String::push::h0c450784edf638d1
cmp r12, rsi
jne 0x10080da0
mov rax, qword [rbp - 0x48]
mov qword [rdi + 0x10], rax
mov rax, qword [rbp - 0x58]
mov qword [rdi], rax
mov rax, qword [rbp - 0x50]
mov qword [rdi + 8], rax
mov rax, rdi
movaps xmm6, xmmword [rbp - 0x30]
movaps xmm7, xmmword [rbp - 0x20]
movaps xmm8, xmmword [rbp - 0x10]
movaps xmm9, xmmword [rbp]
movaps xmm10, xmmword [rbp + 0x10]
movaps xmm11, xmmword [rbp + 0x20]
movaps xmm12, xmmword [rbp + 0x30]
movaps xmm13, xmmword [rbp + 0x40]
movaps xmm14, xmmword [rbp + 0x50]
movaps xmm15, xmmword [rbp + 0x60]
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
xor r14d, r14d
mov rcx, r14
mov rdx, rsi
call sym.alloc::raw_vec::handle_error::hcf880acc1984e8dc
mov rsi, rax
mov rdx, qword [rbp - 0x58]
test rdx, rdx
je 0x10080f03
mov rcx, qword [rbp - 0x50]
mov r8d, 1
call sym.__rust_dealloc
mov rcx, rsi
call sym._Unwind_Resume
int3