Function at 0x1400c2a70
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 0x1400c2ab1
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 0x1400c2ade
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 0x1400c2b71
cmp al, bl
jae 0x1400c2b6e
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 0x1400c2d03
inc r14
cmp rsi, r14
jne 0x1400c2b50
mov eax, ebx
mov byte [rbp - 0x1e], al
test r12, r12
je 0x1400c2d07
cmp r12, r13
je 0x1400c2d07
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:_6_
jmp 0x1400c2ba9
cmp r12, r13
je 0x1400c2d07
movzx eax, byte [r12]
test al, al
js 0x1400c2bc0
inc r12
jmp 0x1400c2c30
mov ecx, eax
and ecx, 0x1f
movzx r8d, byte [r12 + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x1400c2c0e
movzx edx, byte [r12 + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp al, 0xf0
jb 0x1400c2c1c
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 0x1400c2d07
add r12, 4
jmp 0x1400c2c30
add r12, 2
shl ecx, 6
or ecx, r8d
mov eax, ecx
jmp 0x1400c2c30
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 0x1400c2ba0
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 0x1400c2cd0
add r15, 0xfffffffffffffffd
cmp r15, 9
ja 0x1400c2ba0
mov al, 1
jmp 0x1400c2d5f
neg byte [rbp + 5]
jo 0x1400c2d5d
movzx ecx, byte [rbp + 6]
movzx eax, byte [rbp + 7]
cmp cl, al
jae 0x1400c2d5d
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 0x1400c2d5f
lea rcx, [rbx + 1]
cmp rsi, rbx
mov rbx, rcx
jne 0x1400c2d40
jmp 0x1400c2d5f
xor eax, eax
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret