Function at 0x14009ab20
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, 0x88
lea rbp, [rsp + 0x80]
mov qword [rbp - 0x10], rdx
movzx edx, byte [rcx + 0x10]
cmp dl, 0x80
je 0x14009ab61
movzx eax, byte [rcx + 0x1a]
movzx ebx, byte [rcx + 0x1b]
movzx r8d, byte [rcx + 0x19]
mov byte [rbp - 0x40], r8b
mov r8, qword [rcx + 0x11]
mov qword [rbp - 0x48], r8
mov r12, qword [rcx]
mov r13, qword [rcx + 8]
movzx r11d, byte [rcx + 0x1c]
cmp r11b, 0x80
je 0x14009ab8e
movzx r9d, byte [rcx + 0x26]
movzx r10d, byte [rcx + 0x27]
movzx r8d, byte [rcx + 0x25]
mov byte [rbp - 0x50], r8b
mov rcx, qword [rcx + 0x1d]
mov qword [rbp - 0x58], rcx
mov qword [rbp - 0x38], r12
mov qword [rbp - 0x30], r13
mov byte [rbp - 0x28], dl
mov rcx, qword [rbp - 0x48]
mov qword [rbp - 0x27], rcx
movzx ecx, byte [rbp - 0x40]
mov byte [rbp - 0x1f], cl
mov byte [rbp - 0x1e], al
mov byte [rbp - 0x1d], bl
mov byte [rbp - 0x1c], r11b
movzx ecx, byte [rbp - 0x50]
mov byte [rbp - 0x13], cl
mov rcx, qword [rbp - 0x58]
mov qword [rbp - 0x1b], rcx
mov byte [rbp - 0x12], r9b
mov byte [rbp - 0x11], r10b
cmp dl, 0x80
mov byte [rbp + 6], r9b
mov byte [rbp + 7], r10b
mov byte [rbp + 5], r11b
je 0x14009ac21
cmp al, bl
jae 0x14009ac1e
movzx esi, bl
mov rcx, qword [rbp - 0x10]
mov rdi, qword [rcx + 0x20]
movzx r14d, al
mov rax, qword [rcx + 0x28]
mov r15, qword [rax + 0x20]
nop word cs:[rax + rax]
movzx edx, byte [rbp + r14 - 0x28]
mov rcx, rdi
call r15
test al, al
jne 0x14009adb3
inc r14
cmp rsi, r14
jne 0x14009ac00
mov eax, ebx
mov byte [rbp - 0x1e], al
test r12, r12
je 0x14009adb7
cmp r12, r13
je 0x14009adb7
lea rbx, [rbp - 0x28]
mov rax, qword [rbp - 0x10]
mov rdi, qword [rax + 0x20]
mov r14, qword [rax + 0x28]
lea rsi, str.0123456789abcdefEscapeDefaultBorrowErroralready_mutably_borrowedBorrowMutErroralready_borrowedalready_borrowed:
jmp 0x14009ac59
cmp r12, r13
je 0x14009adb7
movzx eax, byte [r12]
test al, al
js 0x14009ac70
inc r12
jmp 0x14009ace0
mov ecx, eax
and ecx, 0x1f
movzx r8d, byte [r12 + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x14009acbe
movzx edx, byte [r12 + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp al, 0xf0
jb 0x14009accc
movzx eax, byte [r12 + 3]
and ecx, 7
shl ecx, 0x12
shl edx, 6
and eax, 0x3f
or eax, edx
or eax, ecx
cmp eax, 0x110000
je 0x14009adb7
add r12, 4
jmp 0x14009ace0
add r12, 2
shl ecx, 6
or ecx, r8d
mov eax, ecx
jmp 0x14009ace0
add r12, 3
shl ecx, 0xc
or edx, ecx
mov eax, edx
nop word [rax + rax]
mov ecx, eax
or ecx, 1
bsr r15d, ecx
xor r15d, 0x1c
shr r15d, 2
mov byte [rbp - 4], 0
mov word [rbp - 6], 0
mov ecx, eax
shr ecx, 0x14
movzx ecx, byte [rcx + rsi]
mov byte [rbp - 3], cl
mov ecx, eax
shr ecx, 0x10
and ecx, 0xf
movzx ecx, byte [rcx + rsi]
mov byte [rbp - 2], cl
mov ecx, eax
shr ecx, 0xc
and ecx, 0xf
movzx ecx, byte [rcx + rsi]
mov byte [rbp - 1], cl
mov ecx, eax
shr ecx, 8
and ecx, 0xf
movzx ecx, byte [rcx + rsi]
mov byte [rbp], cl
mov ecx, eax
shr ecx, 4
and ecx, 0xf
movzx ecx, byte [rcx + rsi]
mov byte [rbp + 1], cl
and eax, 0xf
movzx eax, byte [rax + rsi]
mov byte [rbp + 2], al
mov byte [rbp + 3], 0x7d
mov word [rbp + r15 - 8], 0x755c
mov byte [rbp + r15 - 6], 0x7b
movzx eax, word [rbp + 2]
mov word [rbx + 8], ax
mov rax, qword [rbp - 6]
mov qword [rbx], rax
mov byte [rbp - 0x1d], 0xa
nop word cs:[rax + rax]
cmp r15, 0xc
je 0x14009ac50
lea eax, [r15 - 1]
mov byte [rbp - 0x1e], al
movzx edx, byte [rbp + r15 - 0x2a]
mov rcx, rdi
call qword [r14 + 0x20]
inc r15
test al, al
je 0x14009ad80
add r15, 0xfffffffffffffffd
cmp r15, 9
ja 0x14009ac50
mov al, 1
jmp 0x14009ae0f
neg byte [rbp + 5]
jo 0x14009ae0d
movzx ecx, byte [rbp + 6]
movzx eax, byte [rbp + 7]
cmp cl, al
jae 0x14009ae0d
movzx esi, al
mov rax, qword [rbp - 0x10]
mov rdi, qword [rax + 0x20]
movzx ebx, cl
mov rax, qword [rax + 0x28]
mov r14, qword [rax + 0x20]
dec rsi
nop word cs:[rax + rax]
movzx edx, byte [rbp + rbx - 0x1c]
mov rcx, rdi
call r14
test al, al
jne 0x14009ae0f
lea rcx, [rbx + 1]
cmp rsi, rbx
mov rbx, rcx
jne 0x14009adf0
jmp 0x14009ae0f
xor eax, eax
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret