Function at 0x140225dd0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov r11, rsp
mov byte [r11 + 0x18], r8b
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x20], rsi
movzx esi, r9b
movzx r15d, r8b
mov r12, rdx
mov r13, rcx
cmp byte [rsp + 0xb8], 0
je 0x14022608f
cmp word [rcx + 0x80], 3
jl 0x14022608f
movsx eax, r8b
movsx r10d, byte [r11 + 0x28]
sub eax, r10d
cdq
xor eax, edx
sub eax, edx
cmp eax, 1
mov rax, qword [r12]
jne 0x140226092
movsxd r14, dword [rcx + 8]
movsxd rbx, dword [rcx + 0xc]
mov dword [rsp + 0x20], ebx
or rdi, 0xffffffffffffffff
mov r9d, edi
mov r8d, r14d
mov edx, edi
mov rcx, r12
call qword [rax + 0x20]
mov rbp, qword [r12 + 0x60]
movsxd rax, dword [r12 + 0x70]
shl rax, 3
sub rbp, rax
cmp rdi, rbx
jg 0x140225eb6
nop word [rax + rax]
mov rax, qword [rbp + rdi*8]
lea rcx, [rax + r14*2 + 2]
add rax, 0xfffffffffffffffe
cmp rax, rcx
je 0x140225eae
nop word [rax + rax]
mov word [rax], 0xff00
add rax, 2
cmp rax, rcx
jne 0x140225ea0
inc rdi
cmp rdi, rbx
jle 0x140225e80
xor edi, edi
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], rdi
mov rax, qword [r13]
lea rdx, [rsp + 0x38]
mov rcx, r13
call qword [rax + 0xa0]
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
sub rax, rcx
sar rax, 4
test rax, rax
je 0x140226083
mov ebx, edi
nop word [rax + rax]
mov r8d, dword [rbx + rcx + 0xc]
mov edx, dword [rbx + rcx + 8]
mov ecx, 3
call fcn.1401b4c60
test eax, eax
jle 0x140226062
cmp eax, 2
jle 0x140225fe6
cmp eax, 4
jg 0x140226062
lea r11, [rsp + 0xa0]
lea rcx, [rsp + 0xb0]
movzx eax, byte [rsp + 0xb0]
cmp r15b, al
cmovle r11, rcx
lea r10, [rsp + 0xa0]
lea rcx, [rsp + 0xb0]
cmovge r10, rcx
movzx r8d, byte [r10]
movzx r9d, byte [r11]
mov rcx, qword [rsp + 0x38]
movsxd rax, dword [rbx + rcx + 0xc]
movsxd rdx, dword [rbx + rcx + 8]
mov rcx, qword [rbp + rax*8 - 8]
mov byte [rcx + rdx*2], r8b
mov byte [rcx + rdx*2 + 1], r9b
mov rcx, qword [rsp + 0x38]
movsxd rax, dword [rbx + rcx + 0xc]
movsxd rdx, dword [rbx + rcx + 8]
mov rcx, qword [rbp + rax*8 + 8]
mov byte [rcx + rdx*2], r8b
mov byte [rcx + rdx*2 + 1], r9b
mov rcx, qword [rsp + 0x38]
mov eax, dword [rbx + rcx + 8]
movsxd rdx, dword [rbx + rcx + 0xc]
dec eax
movsxd rcx, eax
mov rax, qword [rbp + rdx*8]
mov byte [rax + rcx*2], r8b
mov byte [rax + rcx*2 + 1], r9b
mov rcx, qword [rsp + 0x38]
mov eax, dword [rbx + rcx + 8]
movsxd rdx, dword [rbx + rcx + 0xc]
inc eax
movsxd rcx, eax
mov rax, qword [rbp + rdx*8]
mov byte [rax + rcx*2], r8b
mov byte [rax + rcx*2 + 1], r9b
jmp 0x140226062
mov rcx, qword [rsp + 0x38]
movsxd rax, dword [rbx + rcx + 0xc]
movsxd rdx, dword [rbx + rcx + 8]
mov rcx, qword [rbp + rax*8 - 8]
mov byte [rcx + rdx*2], sil
mov byte [rcx + rdx*2 + 1], sil
mov rcx, qword [rsp + 0x38]
movsxd rax, dword [rbx + rcx + 0xc]
movsxd rdx, dword [rbx + rcx + 8]
mov rcx, qword [rbp + rax*8 + 8]
mov byte [rcx + rdx*2], sil
mov byte [rcx + rdx*2 + 1], sil
mov rcx, qword [rsp + 0x38]
mov eax, dword [rbx + rcx + 8]
movsxd rdx, dword [rbx + rcx + 0xc]
dec eax
movsxd rcx, eax
mov rax, qword [rbp + rdx*8]
mov byte [rax + rcx*2], sil
mov byte [rax + rcx*2 + 1], sil
mov rcx, qword [rsp + 0x38]
mov eax, dword [rbx + rcx + 8]
movsxd rdx, dword [rbx + rcx + 0xc]
inc eax
movsxd rcx, eax
mov rax, qword [rbp + rdx*8]
mov byte [rax + rcx*2], sil
mov byte [rax + rcx*2 + 1], sil
inc rdi
add rbx, 0x10
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
sub rax, rcx
sar rax, 4
cmp rdi, rax
jb 0x140225f00
test rcx, rcx
je 0x14022609d
call fcn.140290ed8
jmp 0x14022609d
mov rax, qword [rdx]
xor r8d, r8d
xor edx, edx
mov rcx, r12
call qword [rax + 0x28]
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret