Function at 0x1401ad290
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, 0x28
mov r8, rcx
movzx r15d, byte [rdx + 0x38]
cmp r15b, 3
je 0x1401ad4d9
mov rdi, rdx
movzx r12d, byte [rdx + 0x39]
cmp r12b, 3
je 0x1401ad4d9
cmp r15b, r12b
ja 0x1401ad4d9
lea rax, [rdi + 0x10]
movzx r14d, byte [rdi + 0x10]
xor ecx, ecx
cmp r14d, 3
setae cl
xor r13d, r13d
cmp r14d, 6
lea r9d, [rcx + rcx*2 + 7]
movzx r10d, byte [rdi + 0x3a]
cmovne r13, rax
lea r11, [0x1401ad688]
nop dword [rax + rax]
test r15b, r15b
je 0x1401ad380
movzx eax, r15b
cmp eax, 1
jne 0x1401ad3b0
mov byte [rdi + 0x38], 2
test r10b, r10b
jne 0x1401ad4b7
mov r15b, 2
cmp r14d, 3
jb 0x1401ad4a6
cmp r14d, 5
je 0x1401ad4a6
cmp r14d, 6
jne 0x1401ad526
mov rcx, rdi
mov rsi, r8
mov ebx, r9d
mov ebp, r10d
mov dword [rsp + 0x24], r14d
mov r14, r13
mov r13, r11
call fcn.1401acf50
mov r11, r13
mov r13, r14
mov r14d, dword [rsp + 0x24]
mov r10d, ebp
mov r9d, ebx
mov r8, rsi
test al, al
je 0x1401ad4a6
jmp 0x1401ad52d
cmp r14b, 6
je case.default.0x1401ad396
movzx esi, byte [r13]
movsxd rax, dword [r11 + rsi*4]
add rax, r11
jmp rax
mov rax, qword [r13 + 0x10]
add rax, 4
jmp 0x1401ad49a
mov rdx, qword [rdi + 8]
test rdx, rdx
je 0x1401ad4d5
mov rax, qword [rdi]
xor esi, esi
cmp r14b, 3
jae 0x1401ad3e0
nop dword [rax + rax]
cmp byte [rax + rsi], 0x5c
je 0x1401ad405
inc rsi
cmp rdx, rsi
jne 0x1401ad3d0
jmp 0x1401ad3f6
movzx ecx, byte [rax + rsi]
cmp ecx, 0x2f
je 0x1401ad405
cmp ecx, 0x5c
je 0x1401ad405
inc rsi
cmp rdx, rsi
jne 0x1401ad3e0
xor ecx, ecx
mov rsi, rdx
test rsi, rsi
jne 0x1401ad40f
mov bpl, 0xa
jmp 0x1401ad440
mov ecx, 1
test rsi, rsi
je 0x1401ad400
mov bpl, 9
cmp rsi, 2
je 0x1401ad42f
cmp rsi, 1
jne 0x1401ad440
cmp byte [rax], 0x2e
movzx ebp, r9b
mov ebx, 9
cmovne ebp, ebx
jmp 0x1401ad440
cmp byte [rax], 0x2e
jne 0x1401ad440
cmp byte [rax + 1], 0x2e
sete bpl
xor bpl, 9
add rcx, rsi
mov rbx, rdx
sub rbx, rcx
jb 0x1401ad62f
add rcx, rax
mov qword [rdi], rcx
mov qword [rdi + 8], rbx
cmp bpl, 0xa
je 0x1401ad4a6
jmp 0x1401ad4f2
mov rax, qword [r13 + 0x10]
mov rcx, qword [r13 + 0x20]
lea rdx, [rcx + 1]
test rcx, rcx
cmove rdx, rcx
add rax, rdx
add rax, 8
jmp 0x1401ad49a
mov rax, qword [r13 + 0x10]
mov rcx, qword [r13 + 0x20]
lea rdx, [rcx + 1]
test rcx, rcx
cmove rdx, rcx
add rax, rdx
add rax, 2
test rax, rax
jne case.0x1401ad396.2
mov byte [rdi + 0x38], 1
mov r15b, 1
cmp r15b, 3
je 0x1401ad4d9
cmp r15b, r12b
jbe 0x1401ad300
jmp 0x1401ad4d9
mov rax, qword [rdi + 8]
test rax, rax
je 0x1401ad63d
inc qword [rdi]
dec rax
mov qword [rdi + 8], rax
mov byte [r8 + 0x10], 6
jmp 0x1401ad4de
mov byte [rdi + 0x38], 3
mov byte [r8 + 0x10], 0xa
mov rax, r8
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [r8], rax
mov qword [r8 + 8], rsi
mov byte [r8 + 0x10], bpl
jmp 0x1401ad4de
mov byte [rdi + 0x38], 1
mov rdx, qword [rdi + 8]
mov edx, dword [rdi + 8]
mov edx, dword [rdi + 8]
mov ecx, 6
lea rax, [0x1401ad6a0]
movsxd rbp, dword [rax + rsi*4]
add rbp, rax
jmp rbp
mov rcx, qword [r13 + 0x10]
add rcx, 4
jmp case.0x1401ad51a.2
mov byte [r8 + 0x10], 6
jmp 0x1401ad4de
mov rax, qword [rdi + 8]
test rax, rax
je 0x1401ad671
inc qword [rdi]
dec rax
mov qword [rdi + 8], rax
mov byte [r8 + 0x10], 7
jmp 0x1401ad4de
mov rax, qword [r13 + 0x10]
mov rcx, qword [r13 + 0x20]
lea rbp, [rcx + 1]
test rcx, rcx
cmove rbp, rcx
lea rcx, [rax + rbp]
add rcx, 8
jmp case.0x1401ad51a.2
mov rax, qword [r13 + 0x10]
mov rcx, qword [r13 + 0x20]
lea rbp, [rcx + 1]
test rcx, rcx
cmove rbp, rcx
lea rcx, [rax + rbp]
add rcx, 2
jmp case.0x1401ad51a.2
mov ecx, 2
cmp rcx, rdx
ja case.default.0x1401ad5a7
add byte [rax], al
add byte [rax], al
mov eax, 6
lea rbp, [0x1401ad6b8]
sbb dword [rcx], eax
add byte [rax], al
sbb dword [rcx], eax
add byte [rax], al
movsxd rbx, dword [rbp + rsi*4]
add rbx, rbp
jmp rbx
mov rax, qword [r13 + 0x10]
add rax, 4
jmp case.0x1401ad5a7.2
mov rax, qword [r13 + 0x10]
mov rbp, qword [r13 + 0x20]
lea rbx, [rbp + 1]
test rbp, rbp
cmove rbx, rbp
add rax, rbx
add rax, 8
jmp case.0x1401ad5a7.2
mov rax, qword [r13 + 0x10]
mov rbp, qword [r13 + 0x20]
lea rbx, [rbp + 1]
lea ebx, [rbp + 1]
lea ebx, [rbp + 1]
test rbp, rbp
cmove rbx, rbp
add rax, rbx
add rax, 2
jmp case.0x1401ad5a7.2
mov eax, 2
mov rbp, rdx
sub rbp, rax
jb 0x1401ad660
mov rdx, qword [rdi]
add rax, rdx
mov qword [rdi], rax
mov qword [rdi + 8], rbp
mov rax, qword [rdi + 0x30]
mov qword [r8 + 0x30], rax
movups xmm0, xmmword [rdi + 0x11]
movups xmm1, xmmword [rdi + 0x21]
movups xmmword [r8 + 0x21], xmm1
movups xmmword [r8 + 0x11], xmm0
mov qword [r8], rdx
mov qword [r8 + 8], rcx
mov byte [r8 + 0x10], r14b
jmp 0x1401ad4de
lea r8, str.library_std_srcpath.rs
call fcn.1401f2e30
ud2
lea r8, str.library_std_srcpath.rs
mov ecx, 1
xor edx, edx
call fcn.1401f2e30
ud2
lea r8, str.library_std_srcpath.rs
call fcn.1401f2e40
ud2
lea r8, str.library_std_srcpath.rs
mov rcx, rax
call fcn.1401f2e30
ud2
lea r8, str.library_std_srcpath.rs
mov ecx, 1
xor edx, edx
call fcn.1401f2e30
ud2