Function at 0x1400bc740
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
sub rsp, 0x20
mov rax, qword [rcx + 0x18]
lea rdi, [rcx + 4]
mov rbp, qword [0x14021cd18]
mov rbx, rcx
test rax, rax
je 0x1400bc768
mov eax, dword [rax + 4]
mov dword [rdi], eax
and byte [rcx + 0xcc], 0xdf
mov rcx, qword [rcx + 0x20]
test rcx, rcx
je 0x1400bc77d
call fcn.1400bc740
mov rcx, qword [rbx + 0x28]
test rcx, rcx
je 0x1400bc78b
call fcn.1400bc740
mov edx, dword [rbx + 0x30]
xor esi, esi
mov qword [rsp + 0x48], r14
mov dword [rbx + 0xc], esi
test edx, edx
jle 0x1400bc863
mov r14d, esi
mov rax, qword [rbx + 0x38]
mov r8d, dword [rbx + 0xb0]
mov ecx, dword [rbp + 0x40a0]
inc r8d
mov rdi, qword [r14 + rax]
cmp r8d, ecx
jne 0x1400bc7d0
mov eax, dword [rdi + 0x2a0]
inc eax
cmp eax, ecx
jge 0x1400bc7d0
mov dl, 1
jmp 0x1400bc7d7
xor dl, dl
cmp r8d, ecx
jne 0x1400bc802
test byte [rbx + 0xcc], 0x40
jne 0x1400bc7ee
mov eax, dword [rdi + 0xb8]
cmp dword [rbx + 0xc0], eax
jne 0x1400bc802
cmp byte [rdi + 0xfe], 0
je 0x1400bc802
test dword [rdi + 0x14], 0x40000
jne 0x1400bc802
mov dl, 1
movzx ecx, byte [rdi + 0x43d]
movzx eax, cl
shr al, 3
and al, 1
or al, dl
je 0x1400bc848
and cl, 0xf7
mov byte [rdi + 0x43d], cl
cmp dword [rbx + 0x30], 1
jne 0x1400bc832
mov eax, dword [rbx + 0x10]
shr eax, 0xb
test al, 1
je 0x1400bc906
mov r8d, dword [rbx]
mov rdx, rdi
mov rcx, rbx
call fcn.1400ba1f0
dec esi
sub r14, 8
jmp 0x1400bc84e
mov eax, dword [rdi + 0x38]
or dword [rbx + 0xc], eax
mov edx, dword [rbx + 0x30]
inc esi
add r14, 8
cmp esi, edx
jl 0x1400bc7a3
lea rdi, [rbx + 4]
mov ecx, dword [rdi]
lea r10, [rbx + 8]
movzx r9d, byte [rbx + 0xcd]
lea r11, [rbx + 0x10]
mov esi, dword [rbx + 8]
mov edi, ecx
mov ebp, dword [rbx + 0xc]
or edi, esi
or edi, ebp
movzx r8d, r9b
mov dword [rbx + 0x10], edi
test r9b, 2
je 0x1400bc8c6
lea r10, [rbx + 8]
lea r11, [rbx + 0x10]
cmp edx, 1
jne 0x1400bc8c6
lea r10, [rbx + 8]
lea r11, [rbx + 0x10]
test dil, 0x40
je 0x1400bc8c6
mov eax, edi
lea r10, [rbx + 8]
shr eax, 0xd
lea r11, [rbx + 0x10]
test dl, al
jne 0x1400bc8c6
or r8b, 4
lea r10, [rbx + 8]
lea r11, [rbx + 0x10]
and r8b, 0xfd
mov byte [rbx + 0xcd], r8b
movzx r9d, r8b
test r8b, 4
je 0x1400bc8f4
mov rax, qword [rbx + 0x90]
test rax, rax
je 0x1400bc8f4
test dword [rax + 0x38], 0x2000
je 0x1400bc8f4
and r9b, 0xfb
cmp edx, 1
jle 0x1400bc928
btr esi, 0xd
or ecx, ebp
mov dword [r10], esi
or ecx, esi
jmp 0x1400bc941
mov rcx, rbx
call fcn.1400b8b70
mov r8d, dword [rbx]
mov rdx, rdi
mov rcx, rbx
mov dword [rbx + 0x14], 1
call fcn.1400ba1f0
jmp 0x1400bc9c0
mov ecx, edi
test r9b, 4
je 0x1400bc944
mov eax, dword [r10]
mov ecx, ebp
or ecx, dword [rbx + 4]
btc eax, 0xd
mov dword [r10], eax
or ecx, eax
mov dword [r11], ecx
and r9b, 0xfb
mov eax, ecx
shr eax, 0xb
shr ecx, 0xa
cmp qword [rbx + 0x18], 0
mov byte [rbx + 0xcd], r9b
movzx eax, al
movzx r9d, cl
cmovne r9d, eax
mov rax, qword [rbx + 0x20]
test rax, rax
je 0x1400bc97d
test byte [rax + 0xcc], 1
je 0x1400bc97d
mov al, 1
jmp 0x1400bc97f
xor al, al
movzx r8d, al
test edx, edx
mov eax, 1
cmovg r8d, eax
mov rax, qword [rbx + 0x28]
or r8b, r9b
test rax, rax
je 0x1400bc9a7
test byte [rax + 0xcc], 1
je 0x1400bc9a7
mov cl, 1
jmp 0x1400bc9a9
xor cl, cl
movzx eax, byte [rbx + 0xcc]
or cl, r8b
and cl, 1
and al, 0xfe
xor cl, al
mov byte [rbx + 0xcc], cl
mov r14, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop rdi
pop rsi
pop rbp
ret