Function at 0x1400c7e20
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push r15
sub rsp, 0x20
mov rax, qword [rcx + 0x18]
mov rbx, rcx
mov rbp, qword [0x140337070]
test rax, rax
je 0x1400c7e46
mov eax, dword [rax + 4]
mov dword [rcx + 4], eax
and byte [rcx + 0xcc], 0xdf
mov rcx, qword [rcx + 0x20]
test rcx, rcx
je 0x1400c7e5b
call fcn.1400c7e20
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x1400c7e69
call fcn.1400c7e20
mov r8d, dword [rbx + 0x30]
xor esi, esi
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], r14
mov dword [rbx + 0xc], esi
test r8d, r8d
jle 0x1400c7f4e
mov r14d, esi
nop dword [rax + rax]
mov rax, qword [rbx + 0x38]
mov r8d, dword [rbx + 0xb0]
mov ecx, dword [rbp + 0x3f70]
inc r8d
mov rdi, qword [r14 + rax]
cmp r8d, ecx
jne 0x1400c7ebd
mov eax, dword [rdi + 0x298]
inc eax
cmp eax, ecx
jge 0x1400c7ebd
mov dl, 1
jmp 0x1400c7ec4
xor dl, dl
cmp r8d, ecx
jne 0x1400c7eef
test byte [rbx + 0xcc], 0x40
jne 0x1400c7edb
mov eax, dword [rdi + 0xb0]
cmp dword [rbx + 0xc0], eax
jne 0x1400c7eef
cmp byte [rdi + 0xf5], 0
je 0x1400c7eef
test dword [rdi + 0x14], 0x100000
jne 0x1400c7eef
mov dl, 1
movzx ecx, byte [rdi + 0x42d]
movzx eax, cl
shr al, 3
and al, 1
or al, dl
je 0x1400c7f35
and cl, 0xf7
mov byte [rdi + 0x42d], cl
cmp dword [rbx + 0x30], 1
jne 0x1400c7f1f
mov eax, dword [rbx + 0x10]
shr eax, 0xb
test al, 1
je 0x1400c7fd2
mov r8d, dword [rbx]
mov rdx, rdi
mov rcx, rbx
call fcn.1400c78b0
dec esi
sub r14, 8
jmp 0x1400c7f3b
mov eax, dword [rdi + 0x30]
or dword [rbx + 0xc], eax
mov r8d, dword [rbx + 0x30]
inc esi
add r14, 8
cmp esi, r8d
jl 0x1400c7e90
movzx r10d, byte [rbx + 0xcd]
mov edi, dword [rbx + 4]
movzx edx, r10b
mov r9d, dword [rbx + 8]
mov ecx, edi
mov r11d, dword [rbx + 0xc]
or ecx, r9d
or ecx, r11d
mov dword [rbx + 0x10], ecx
test r10b, 2
je 0x1400c7f8b
cmp r8d, 1
jne 0x1400c7f8b
mov eax, ecx
and eax, 0x2040
cmp eax, 0x40
jne 0x1400c7f8b
or dl, 4
and dl, 0xfd
mov byte [rbx + 0xcd], dl
movzx eax, dl
test dl, 4
je 0x1400c7fb4
mov r10, qword [rbx + 0x90]
test r10, r10
je 0x1400c7fb4
test dword [r10 + 0x30], 0x2000
je 0x1400c7fb4
and al, 0xfb
cmp r8d, 1
jle 0x1400c7ff1
btr r9d, 0xd
mov dword [rbx + 8], r9d
or r9d, edi
or r9d, r11d
mov dword [rbx + 0x10], r9d
mov ecx, r9d
jmp 0x1400c8007
mov rcx, rbx
call fcn.1400c7d10
mov r8d, dword [rbx]
mov rdx, rdi
mov rcx, rbx
mov dword [rbx + 0x14], 1
call fcn.1400c78b0
jmp 0x1400c806f
test al, 4
je 0x1400c8007
mov ecx, r9d
btc ecx, 0xd
mov dword [rbx + 8], ecx
or ecx, edi
or ecx, r11d
mov dword [rbx + 0x10], ecx
and al, 0xfb
mov byte [rbx + 0xcd], al
mov eax, ecx
shr eax, 0xb
shr ecx, 0xa
cmp qword [rbx + 0x18], 0
movzx eax, al
movzx edx, cl
cmovne edx, eax
test r8d, r8d
setg al
or dl, al
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x1400c8041
test byte [rax + 0xcc], 1
je 0x1400c8041
mov dl, 1
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x1400c8057
test byte [rax + 0xcc], 1
je 0x1400c8057
mov cl, 1
jmp 0x1400c8059
xor cl, cl
movzx eax, byte [rbx + 0xcc]
or cl, dl
and cl, 1
and al, 0xfe
xor cl, al
mov byte [rbx + 0xcc], cl
mov r14, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop rsi
pop rbp
ret