Function at 0x1400defb0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov r11, rsp
mov byte [r11 + 0x20], r9b
mov dword [r11 + 0x18], r8d
push rbp
push r15
sub rsp, 0x58
mov rbp, rcx
mov eax, 1
mov ecx, edx
shl eax, cl
mov r15d, eax
sar r15d, 1
or r15d, eax
xor eax, eax
mov dword [rsp + 0x78], eax
cmp dword [rbp + 0x2c], eax
jle 0x1400df242
mov qword [r11 - 0x18], rbx
mov qword [r11 - 0x20], rsi
mov qword [r11 - 0x28], rdi
mov qword [r11 - 0x30], r12
mov qword [r11 - 0x38], r13
lea r10, [0x140000000]
mov qword [r11 - 0x40], r14
nop word [rax + rax]
xor r12d, r12d
cmp dword [rbp + 0x28], r12d
jle 0x1400df214
nop dword [rax]
lea r13d, [rax + 4]
mov esi, eax
cmp eax, r13d
jge 0x1400df207
nop
mov ecx, dword [rbp + 0x2c]
cmp esi, ecx
jge 0x1400df203
test byte [rsp + 0x90], 8
je 0x1400df05b
lea eax, [r13 - 1]
cmp esi, eax
je 0x1400df054
lea eax, [rcx - 1]
cmp esi, eax
jne 0x1400df05b
mov edx, 1
jmp 0x1400df05d
xor edx, edx
mov eax, dword [rbp + 0x28]
mov rbx, qword [rbp + 0x10]
mov r14, qword [rbp + 8]
imul eax, esi
add eax, r12d
inc esi
movsxd rcx, eax
mov rax, qword [rbp + 0x18]
lea rax, [rax + rcx*4]
mov qword [rsp + 0x70], rax
mov eax, esi
imul eax, dword [rbp + 0x38]
inc eax
add eax, r12d
movsxd rcx, eax
mov rax, qword [rbp + 0x20]
lea rdi, [rax + rcx*2]
movsx eax, word [rax + rcx*2]
test edx, edx
je 0x1400df0a3
and eax, 0xfffffbb9
test al, al
je 0x1400df1fa
test eax, 0x5000
jne 0x1400df1fa
cmp r9b, 1
jne 0x1400df159
mov rcx, rbx
call fcn.1400e2bf0
test eax, eax
je 0x1400df1da
mov rcx, rbx
call fcn.1400e2bf0
mov ecx, r15d
movsxd rdx, eax
test eax, eax
je 0x1400df0e4
neg ecx
mov rax, qword [rsp + 0x70]
lea r10, [0x140000000]
mov dword [rax], ecx
movsxd rax, dword [rbp + 0x38]
mov rcx, rdi
add rax, rax
sub rcx, rax
lea r8, [rax + rdi]
movzx eax, word [r10 + rdx*2 + 0x1565b8]
or word [rcx - 2], 2
or word [rcx], ax
or word [rcx + 2], 4
movzx eax, word [r10 + rdx*2 + 0x1565bc]
or word [rdi - 2], ax
mov eax, 0x1000
or word [rdi], ax
movzx eax, word [r10 + rdx*2 + 0x1565c0]
or word [rdi + 2], ax
or word [r8 - 2], 1
movzx eax, word [r10 + rdx*2 + 0x1565c4]
or word [r8], ax
or word [r8 + 2], 8
jmp 0x1400df1e1
movsxd rbx, eax
mov eax, r8d
shl eax, 8
movsxd rcx, eax
movzx eax, bl
or rcx, rax
movsx rax, byte [rcx + r10 + 0x3d1540]
add rax, 5
lea rcx, [r14 + rax*8]
mov qword [r14 + 0xc0], rcx
mov rcx, r14
call fcn.1400e2410
test eax, eax
je 0x1400df1da
lea rcx, [0x140000000]
sar rbx, 4
movzx r8d, bl
movsx rax, byte [r8 + rcx + 0x3d1940]
movsx ebx, byte [r8 + rcx + 0x3d1a40]
mov rcx, r14
add rax, 5
lea rdx, [r14 + rax*8]
mov qword [r14 + 0xc0], rdx
call fcn.1400e2410
mov ecx, r15d
mov edx, eax
xor edx, ebx
je 0x1400df1d2
neg ecx
movsxd rdx, edx
jmp 0x1400df0e4
lea r10, [0x140000000]
movzx r9d, byte [rsp + 0x88]
mov r8d, dword [rsp + 0x80]
mov eax, 0x4000
or word [rdi], ax
cmp esi, r13d
jl 0x1400df030
mov eax, dword [rsp + 0x78]
inc r12d
cmp r12d, dword [rbp + 0x28]
jl 0x1400df020
add eax, 4
mov dword [rsp + 0x78], eax
cmp eax, dword [rbp + 0x2c]
jl 0x1400df010
mov r14, qword [rsp + 0x28]
mov r13, qword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
add rsp, 0x58
pop r15
pop rbp
ret