Function at 0x180100dd0
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 0x180100e11
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 0x180100e3e
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 0x180100ed1
cmp al, bl
jae 0x180100ece
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 0x180101063
inc r14
cmp rsi, r14
jne 0x180100eb0
mov eax, ebx
mov byte [rbp - 0x1e], al
test r12, r12
je 0x180101067
cmp r12, r13
je 0x180101067
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 0x180100f09
cmp r12, r13
je 0x180101067
movzx eax, byte [r12]
test al, al
js 0x180100f20
inc r12
jmp 0x180100f90
mov ecx, eax
and ecx, 0x1f
movzx r8d, byte [r12 + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x180100f6e
movzx edx, byte [r12 + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp al, 0xf0
jb 0x180100f7c
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 0x180101067
add r12, 4
jmp 0x180100f90
add r12, 2
shl ecx, 6
or ecx, r8d
mov eax, ecx
jmp 0x180100f90
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 0x180100f00
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 0x180101030
add r15, 0xfffffffffffffffd
cmp r15, 9
ja 0x180100f00
mov al, 1
jmp 0x1801010bf
neg byte [rbp + 5]
jo 0x1801010bd
movzx ecx, byte [rbp + 6]
movzx eax, byte [rbp + 7]
cmp cl, al
jae 0x1801010bd
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 0x1801010bf
lea rcx, [rbx + 1]
cmp rsi, rbx
mov rbx, rcx
jne 0x1801010a0
jmp 0x1801010bf
xor eax, eax
add rsp, 0x88
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret