Function at 0x140002ca0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rdi
sub rsp, 0x68
mov r8d, dword [rcx + 0x64]
mov rdi, rcx
mov r9d, dword [rcx + 0x3c]
mov rbx, rdx
mov ecx, dword [rcx + 0x48]
lea eax, [r9 + r8]
cmp eax, ecx
jbe 0x140002ce4
mov r8d, ecx
sub r8d, r9d
cmp r8d, 3
jae 0x140002ce4
mov rcx, rdi
mov dword [rdx], 0
add rsp, 0x68
pop rdi
pop rbx
jmp fcn.140003260
mov qword [rsp + 0x60], rbp
xor r10d, r10d
mov qword [rsp + 0x58], rsi
mov rsi, r9
mov qword [rsp + 0x50], r12
mov r12d, 2
mov qword [rsp + 0x48], r13
mov r13d, 1
mov qword [rsp + 0x40], r14
mov r14d, r9d
sub r14d, dword [rdi + 0x60]
cmp r9d, dword [rdi + 0x60]
mov qword [rsp + 0x38], r15
cmovbe r14d, r10d
mov dword [rsp + 0x80], r13d
add rsi, qword [rdi + 0x30]
mov dword [rsp + 0x98], r14d
mov dword [rsp + 0x90], r12d
movzx eax, byte [rsi]
movzx ecx, byte [rsi + 1]
shl rcx, 8
xor rcx, rax
mov rax, qword [rdi + 0x68]
mov r11d, dword [rax + rcx*4]
mov dword [rax + rcx*4], r9d
mov eax, dword [rdi + 0x5c]
mov rcx, qword [rdi + 0x70]
add eax, eax
mov qword [rsp + 0x28], rcx
lea r15, [rcx + rax*4]
lea r9, [r15 + 4]
mov qword [rsp + 0x20], r9
cmp r11d, r14d
jbe 0x140002daa
mov rcx, qword [rdi + 0x30]
lea edx, [r11 + 2]
movzx eax, byte [rsi + 2]
cmp byte [rdx + rcx], al
je 0x140002daa
mov dword [rbx + 4], r12d
lea r13d, [r10 + 3]
mov eax, dword [rdi + 0x3c]
sub eax, r11d
mov dword [rsp + 0x80], r12d
dec eax
mov dword [rbx + 8], eax
mov ebp, dword [rdi + 0x78]
jmp 0x140002db6
mov ebp, dword [rdi + 0x78]
cmp r11d, r14d
jbe 0x140002ea6
mov eax, r13d
lea r14, [rbx + rax*4]
nop dword [rax]
mov eax, ebp
dec ebp
test eax, eax
je 0x140002ea3
mov r10d, dword [rdi + 0x3c]
mov ecx, dword [rdi + 0x5c]
sub r10d, r11d
cmp r10d, ecx
ja 0x140002de0
sub ecx, r10d
jmp 0x140002de8
mov eax, dword [rdi + 0x60]
sub eax, r10d
add ecx, eax
mov rax, qword [rsp + 0x28]
add ecx, ecx
mov r9d, r11d
add r9, qword [rdi + 0x30]
cmp dword [rsp + 0x90], r12d
lea rbx, [rax + rcx*4]
mov eax, r12d
cmovb eax, dword [rsp + 0x90]
movzx ecx, byte [rax + rsi]
cmp byte [rax + r9], cl
jne 0x140002e5d
inc eax
cmp eax, r8d
je 0x140002e31
nop
movzx ecx, byte [rax + rsi]
cmp byte [rax + r9], cl
jne 0x140002e31
inc eax
cmp eax, r8d
jne 0x140002e20
cmp dword [rsp + 0x80], eax
jae 0x140002e5d
mov dword [r14], eax
lea ecx, [r10 - 1]
mov dword [r14 + 4], ecx
add r13d, 2
add r14, 8
mov dword [rsp + 0x80], eax
cmp eax, r8d
je 0x140002f56
movzx ecx, byte [rax + rsi]
cmp byte [rax + r9], cl
jae 0x140002e7b
mov r9, qword [rsp + 0x20]
mov r12d, eax
mov dword [r15], r11d
lea r15, [rbx + 4]
mov rbx, r15
jmp 0x140002e92
mov rcx, qword [rsp + 0x20]
mov r9, rbx
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x90], eax
mov dword [rcx], r11d
mov r11d, dword [rbx]
cmp r11d, dword [rsp + 0x98]
ja 0x140002dc0
xor r10d, r10d
mov dword [r15], r10d
mov dword [r9], r10d
mov rcx, qword [rsp + 0x88]
lea eax, [r13 - 1]
mov r15, qword [rsp + 0x38]
mov r14, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x60]
mov dword [rcx], eax
inc dword [rdi + 0x5c]
mov eax, dword [rdi + 0x5c]
cmp eax, dword [rdi + 0x60]
jne 0x140002ee2
mov dword [rdi + 0x5c], r10d
mov ecx, dword [rdi + 0x3c]
inc ecx
mov dword [rdi + 0x3c], ecx
cmp ecx, dword [rdi + 0x20]
jbe 0x140002f37
mov r8, qword [rdi + 0x30]
mov eax, ecx
add rax, r8
cmp rax, qword [rdi + 0x28]
jbe 0x140002f2a
mov eax, r8d
sub eax, dword [rdi + 0x40]
sub eax, dword [rdi + 0x10]
add ecx, eax
mov eax, dword [rdi + 0x48]
lea ebx, [rcx - 1]
cmove ebx, ecx
mov rcx, qword [rdi + 0x10]
sub eax, ebx
sub eax, ecx
add r8d, eax
lea rdx, [rcx + rbx]
call fcn.14031e5f0
sub qword [rdi + 0x30], rbx
lea rcx, [rdi + 8]
call fcn.1400028c0
test eax, eax
jne 0x140002f4a
cmp dword [rdi + 0x3c], 0x7fffffff
jne 0x140002f48
mov rcx, rdi
call fcn.140003170
xor eax, eax
mov rsi, qword [rsp + 0x58]
add rsp, 0x68
pop rdi
pop rbx
ret
mov eax, dword [rbx]
xor r10d, r10d
mov rcx, qword [rsp + 0x20]
mov dword [r15], eax
mov eax, dword [rbx + 4]
mov dword [rcx], eax
jmp 0x140002eac