Function at 0x14009be90
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rsi, rdx
mov qword [rsp + 0x38], rcx
mov rcx, qword [rdx + 0x20]
mov rdx, qword [rdx + 0x28]
mov qword [rsp + 0x28], r8
call fcn.14009c240
mov rcx, qword [rsi]
mov qword [rsp + 0x40], rsi
mov r8, qword [rsi + 8]
mov qword [rsp + 0x30], r8
and r8, rax
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor r9d, r9d
pcmpeqd xmm1, xmm1
movdqu xmm2, xmmword [rcx + r8]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb eax, xmm3
test eax, eax
je 0x14009c090
mov rdx, qword [rsp + 0x28]
movzx r10d, byte [rdx]
mov qword [rsp + 0x48], r9
jmp 0x14009bf3e
test sil, sil
je 0x14009c21d
lea eax, [r11 - 1]
and eax, r11d
test ax, ax
mov r9, qword [rsp + 0x48]
je 0x14009c090
mov r11d, eax
tzcnt r15d, r11d
add r15, r8
and r15, qword [rsp + 0x30]
mov rax, r15
neg rax
lea rax, [rax + rax*4]
shl rax, 4
lea r12, [rcx + rax]
add rax, rcx
add rax, 0xffffffffffffffb0
cmp r10d, 1
je 0x14009bff0
cmp r10d, 2
jne 0x14009c21d
movzx esi, byte [rax]
cmp sil, 2
jne 0x14009bf20
mov rdx, qword [rsp + 0x28]
mov rsi, qword [rdx + 8]
mov r13, qword [rsi + 0x10]
mov r14, qword [r12 - 0x48]
cmp r13, qword [r14 + 0x10]
jne 0x14009bf29
mov rbp, qword [rsi + 8]
mov r14, qword [r14 + 8]
xor esi, esi
nop word cs:[rax + rax]
cmp r13, rsi
je 0x14009c021
movzx edi, byte [rbp + rsi]
movzx r9d, byte [r14 + rsi]
inc rsi
lea ebx, [rdi - 0x41]
cmp bl, 0x1a
setb bl
shl bl, 5
lea edx, [r9 - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or bl, dil
or dl, r9b
cmp bl, dl
je 0x14009bfb0
jmp 0x14009bf29
movzx esi, byte [rax]
cmp sil, 1
jne 0x14009bf20
mov rdx, qword [rsp + 0x28]
cmp byte [rdx + 1], 0
movzx esi, byte [r12 - 0x4f]
je 0x14009c018
test sil, sil
jne 0x14009c021
jmp 0x14009bf29
test sil, sil
jne 0x14009bf29
mov rdx, qword [rsp + 0x28]
mov r13, qword [rdx + 0x20]
cmp r13, qword [r12 - 0x30]
jne 0x14009bf29
mov rdx, qword [rsp + 0x28]
mov rbp, qword [rdx + 0x18]
mov r14, qword [r12 - 0x38]
xor esi, esi
nop word cs:[rax + rax]
cmp r13, rsi
je 0x14009c0b5
movzx edx, byte [rbp + rsi]
movzx r9d, byte [r14 + rsi]
inc rsi
lea edi, [rdx - 0x41]
cmp dil, 0x1a
setb bl
shl bl, 5
lea edi, [r9 - 0x41]
cmp dil, 0x1a
setb dil
shl dil, 5
or bl, dl
or dil, r9b
cmp bl, dil
je 0x14009c050
jmp 0x14009bf29
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
test eax, eax
jne 0x14009c18f
add r8, r9
add r8, 0x10
add r9, 0x10
and r8, qword [rsp + 0x30]
jmp 0x14009beee
shl r15, 4
lea rdx, [r15 + r15*4]
sar rdx, 4
movabs r8, 0xcccccccccccccccd
imul r8, rdx
lea r9, [r8 - 0x10]
and r9, qword [rsp + 0x30]
movdqu xmm0, xmmword [rcx + r9]
pcmpeqd xmm1, xmm1
pcmpeqb xmm0, xmm1
psllw xmm0, 7
pmovmskb r10d, xmm0
movdqu xmm0, xmmword [rcx + r8]
pcmpeqb xmm0, xmm1
pmovmskb edx, xmm0
test r10d, r10d
mov r11, qword [rsp + 0x40]
je 0x14009c113
bsr r10w, r10w
xor r10d, 0xf
jmp 0x14009c118
mov r10w, 0x10
or edx, 0x10000
tzcnt edx, edx
add r10d, edx
mov dl, pe_nt_image_headers64
cmp r10w, 0xf
ja 0x14009c134
inc qword [r11 + 0x10]
mov dl, 0xff
mov byte [rcx + r8], dl
mov byte [rcx + r9 + 0x10], dl
dec qword [r11 + 0x18]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movaps xmmword [rsp + 0x80], xmm3
movdqu xmm3, xmmword [rax + 0x40]
movdqa xmmword [rsp + 0x90], xmm3
movdqa xmmword [rsp + 0x70], xmm2
movdqa xmmword [rsp + 0x60], xmm1
movdqa xmmword [rsp + 0x50], xmm0
movabs rax, 0x8000000000000000
cmp qword [rsp + 0x80], rax
jne 0x14009c1a3
mov rax, qword [rsp + 0x38]
movabs rcx, 0x8000000000000000
mov qword [rax], rcx
jmp 0x14009c208
lea rax, [rsp + 0x80]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
mov rax, qword [rsp + 0x38]
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
cmp byte [rsp + 0x50], 2
jb 0x14009c1f1
mov rsi, qword [rsp + 0x58]
lea rcx, [rsi + 0x18]
mov rax, qword [rsi]
mov rdx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
call qword [rax + 0x18]
mov rcx, qword [0x140279280]
xor edx, edx
mov r8, rsi
call fcn.1401abdbc
lea rcx, [rsp + 0x78]
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
call qword [rax + 0x18]
nop
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.internal_error:_entered_unreachable_codeEndOfInput_home_dreamingcodes_.cargo_registry_src_index.crates.io_6f17d22bba15001f_untrusted_0.9.0_src_reader.rs_home_dreamingcodes_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rustls_webpki_0.102.4_src_der.rs
lea r8, str._home_dreamingcodes_.cargo_registry_src_index.crates.io_6f17d22bba15001f_http_1.1.0_src_uri_scheme.rs
mov edx, 0x28
call fcn.140046f60
int3