Function at 0x14009ac90
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, 0x78
lea rbp, [rsp + 0x70]
mov r13, rdx
movzx edx, byte [rcx + 0x10]
cmp dl, 0x80
je 0x14009acca
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 rsi, qword [rcx + 8]
movzx r15d, byte [rcx + 0x1c]
cmp r15b, 0x80
je 0x14009acf7
movzx r10d, byte [rcx + 0x26]
movzx r11d, byte [rcx + 0x27]
movzx r8d, byte [rcx + 0x25]
mov byte [rbp], r8b
mov rcx, qword [rcx + 0x1d]
mov qword [rbp - 8], rcx
movzx ecx, byte [rbp - 0x40]
mov byte [rbp - 0x17], cl
mov rcx, qword [rbp - 0x48]
mov qword [rbp - 0x1f], rcx
mov rcx, qword [rbp - 8]
mov qword [rbp - 0x13], rcx
movzx ecx, byte [rbp]
mov byte [rbp - 0xb], cl
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x28], rsi
mov byte [rbp - 0x20], dl
mov byte [rbp - 0x16], al
mov byte [rbp - 0x15], bl
mov byte [rbp - 0x14], r15b
mov byte [rbp - 0xa], r10b
mov byte [rbp - 9], r11b
cmp dl, 0x80
je 0x14009ad92
cmp al, bl
jae 0x14009ad8f
mov qword [rbp - 0x38], rsi
mov byte [rbp + 7], r11b
mov byte [rbp + 6], r10b
movzx r14d, bl
mov rdi, qword [r13 + 0x20]
movzx esi, al
mov qword [rbp - 0x50], r13
mov rax, qword [r13 + 0x28]
mov r13, qword [rax + 0x20]
nop
movzx edx, byte [rbp + rsi - 0x20]
mov rcx, rdi
call r13
test al, al
jne 0x14009b03d
inc rsi
cmp r14, rsi
jne 0x14009ad60
mov eax, ebx
mov r13, qword [rbp - 0x50]
movzx r10d, byte [rbp + 6]
movzx r11d, byte [rbp + 7]
mov rsi, qword [rbp - 0x38]
mov byte [rbp - 0x16], al
test r12, r12
je 0x14009aff6
cmp r12, rsi
je 0x14009aff6
mov rdi, qword [r13 + 0x20]
mov rbx, qword [r13 + 0x28]
mov byte [rbp + 6], r10b
mov byte [rbp + 7], r11b
mov qword [rbp - 0x38], rsi
movzx eax, byte [r12]
test al, al
js 0x14009add0
inc r12
jmp 0x14009ae40
mov ecx, eax
and ecx, 0x1f
movzx r8d, byte [r12 + 1]
and r8d, 0x3f
cmp al, 0xdf
jbe 0x14009ae1e
movzx edx, byte [r12 + 2]
shl r8d, 6
and edx, 0x3f
or edx, r8d
cmp al, 0xf0
jb 0x14009ae2c
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 0x14009aff6
add r12, 4
jmp 0x14009ae40
add r12, 2
shl ecx, 6
or ecx, r8d
mov eax, ecx
jmp 0x14009ae40
add r12, 3
shl ecx, 0xc
or edx, ecx
mov eax, edx
nop word [rax + rax]
mov dl, 2
mov cl, 0x5c
lea r8d, [rax - 9]
cmp r8d, 0x1e
ja case.default.0x14009ae5c
lea r9, [0x1400b3f98]
movsxd r8, dword [r9 + r8*4]
add r8, r9
jmp r8
mov al, 0x74
jmp case.0x14009ae5c.34
cmp eax, 0x5c
je case.0x14009ae5c.34
lea r8d, [rax - 0x20]
cmp r8d, 0x5f
jae 0x14009af1c
mov r8d, eax
lea r9, [0x1400b7d65]
movzx r9d, byte [r8 + r9]
mov r8d, r9d
and r8b, 0x7f
test r9b, r9b
js 0x14009afba
mov dl, 1
xor r9d, r9d
xor eax, eax
mov ecx, r8d
jmp 0x14009aeb3
mov al, 0x72
jmp case.0x14009ae5c.34
mov al, 0x6e
nop word [rax + rax]
xor r9d, r9d
xor r8d, r8d
mov byte [rbp - 0x20], cl
mov byte [rbp - 0x1f], al
mov qword [rbp - 0x1e], r9
mov byte [rbp - 0x15], dl
movzx ecx, r8b
movzx r14d, dl
nop dword [rax + rax]
cmp rcx, r14
jae 0x14009af00
lea rsi, [rcx + 1]
mov byte [rbp - 0x16], sil
movzx edx, byte [rbp + rcx - 0x20]
mov rcx, rdi
call qword [rbx + 0x20]
mov rcx, rsi
test al, al
je 0x14009aed0
jmp 0x14009b03d
mov rsi, qword [rbp - 0x38]
cmp r12, rsi
movzx r10d, byte [rbp + 6]
movzx r11d, byte [rbp + 7]
jne 0x14009adb8
jmp 0x14009aff6
mov ecx, eax
or ecx, 1
bsr ecx, ecx
xor ecx, 0x1c
shr ecx, 2
lea r8, [rcx - 2]
mov byte [rbp - 6], 0
mov word [rbp - 8], 0
mov edx, eax
shr edx, 0x14
lea r9, str.0123456789abcdefEscapeDefaultLazyCell_instance_has_previously_been_poisoned
movzx edx, byte [rdx + r9]
mov byte [rbp - 5], dl
mov edx, eax
shr edx, 0x10
and edx, 0xf
movzx edx, byte [rdx + r9]
mov byte [rbp - 4], dl
mov edx, eax
shr edx, 0xc
and edx, 0xf
movzx edx, byte [rdx + r9]
mov byte [rbp - 3], dl
mov edx, eax
shr edx, 8
and edx, 0xf
movzx edx, byte [rdx + r9]
mov byte [rbp - 2], dl
mov edx, eax
shr edx, 4
and edx, 0xf
movzx edx, byte [rdx + r9]
mov byte [rbp - 1], dl
and eax, 0xf
movzx eax, byte [rax + r9]
mov byte [rbp], al
mov byte [rbp + 1], 0x7d
mov word [rbp + rcx - 0xa], 0x755c
mov byte [rbp + rcx - 8], 0x7b
movzx ecx, byte [rbp - 8]
movzx eax, byte [rbp - 7]
mov dl, 0xa
mov r9, qword [rbp - 6]
jmp 0x14009aeb6
test r8b, r8b
je 0x14009afca
xor r9d, r9d
mov eax, r8d
jmp 0x14009aeb3
movzx eax, al
mov edx, eax
and edx, 0xf
shr eax, 4
lea r8, str.0123456789abcdefEscapeDefaultLazyCell_instance_has_previously_been_poisoned
movzx eax, byte [rax + r8]
movzx r9d, byte [rdx + r8]
shl r9d, 8
or r9, rax
mov dl, 4
mov al, 0x78
jmp 0x14009aeb3
neg r15b
jo 0x14009b041
cmp r10b, r11b
jae 0x14009b041
movzx ebx, r11b
mov rdi, qword [r13 + 0x20]
movzx r14d, r10b
mov rax, qword [r13 + 0x28]
mov rsi, qword [rax + 0x20]
dec rbx
nop word [rax + rax]
movzx edx, byte [rbp + r14 - 0x14]
mov rcx, rdi
call rsi
test al, al
jne 0x14009b043
lea rcx, [r14 + 1]
cmp rbx, r14
mov r14, rcx
jne 0x14009b020
jmp 0x14009b043
mov al, 1
jmp 0x14009b043
xor eax, eax
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret