Function at 0x14008f5e0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x48
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0xa8]
and eax, 0xfff0000
cmp eax, 0x3ff0000
je 0x14008f6e0
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0xa8]
and eax, 0x10000
test eax, eax
jne 0x14008f645
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0xbd]
lea rcx, [0x1400f3190]
movzx eax, byte [rcx + rax]
and eax, 0x60
test eax, eax
jne 0x14008f645
mov rcx, qword [rsp + 0x50]
call fcn.14008fa20
jmp 0x14008fa06
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0xa8]
and eax, 0xb0000
cmp eax, 0xb0000
je 0x14008f69b
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0xbd]
lea rcx, [0x1400f3190]
movzx eax, byte [rcx + rax]
and eax, 0x60
cmp eax, 0x40
jne 0x14008f69b
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0xbd]
cmp eax, 0x47
je 0x14008f69b
mov rcx, qword [rsp + 0x50]
call fcn.140085ec0
jmp 0x14008fa06
mov rax, qword [rsp + 0x50]
mov eax, dword [rax + 0xa8]
and eax, 0x110000
cmp eax, 0x110000
je 0x14008f6e0
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0xbd]
lea rcx, [0x1400f3190]
movzx eax, byte [rcx + rax]
and eax, 0x60
cmp eax, 0x60
jne 0x14008f6e0
mov rcx, qword [rsp + 0x50]
call fcn.140085ec0
jmp 0x14008fa06
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax + 0xbd]
shl eax, 0x11
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0xb8]
mov rcx, qword [rsp + 0x50]
cmp eax, dword [rcx + 0x28]
jb 0x14008f7b4
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0xb8]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x20]
movzx eax, byte [rcx + rax*8 + 5]
shl eax, 0xa
mov ecx, dword [rsp + 0x24]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0xb8]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x20]
mov rax, qword [rcx + rax*8]
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x50]
mov qword [rdx + rcx + 0xc0], rax
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0xb8]
cmp eax, 0x7ffd
jge 0x14008f7b4
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0xb8]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x20]
lea rax, [rcx + rax*8]
mov ecx, 8
imul rcx, rcx, 1
mov rax, qword [rax + rcx]
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
mov qword [rdx + rcx + 0xc0], rax
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0xba]
mov rcx, qword [rsp + 0x50]
cmp eax, dword [rcx + 0x28]
jb 0x14008f874
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0xba]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x20]
movzx eax, byte [rcx + rax*8 + 5]
mov ecx, dword [rsp + 0x24]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0xba]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x20]
mov rax, qword [rcx + rax*8]
mov ecx, 8
imul rcx, rcx, 0
mov rdx, qword [rsp + 0x50]
mov qword [rdx + rcx + 0xd0], rax
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0xba]
cmp eax, 0x7ffd
jge 0x14008f872
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0xba]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x20]
lea rax, [rcx + rax*8]
mov ecx, 8
imul rcx, rcx, 1
mov rax, qword [rax + rcx]
mov ecx, 8
imul rcx, rcx, 1
mov rdx, qword [rsp + 0x50]
mov qword [rdx + rcx + 0xd0], rax
jmp 0x14008f891
mov rax, qword [rsp + 0x50]
movzx eax, word [rax + 0xba]
and eax, 0x3ff
mov ecx, dword [rsp + 0x24]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x24], eax
mov dword [rsp + 0x2c], 0
mov eax, dword [rsp + 0x2c]
and eax, 0x1ffff
mov ecx, dword [rsp + 0x24]
or ecx, eax
mov eax, ecx
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
shl eax, 0x15
mov ecx, dword [rsp + 0x20]
shr ecx, 0xb
or eax, ecx
sub eax, dword [rsp + 0x20]
shl eax, 0xe
mov ecx, dword [rsp + 0x20]
shl ecx, 0x15
mov edx, dword [rsp + 0x20]
shr edx, 0xb
or ecx, edx
sub ecx, dword [rsp + 0x20]
shr ecx, 0x12
or eax, ecx
xor edx, edx
mov ecx, 0x3e9
div ecx
mov eax, edx
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x34]
lea rcx, [0x1400f3ea0]
mov eax, dword [rcx + rax*4]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
and eax, 0xffffff
cmp eax, dword [rsp + 0x20]
je 0x14008f933
mov eax, dword [rsp + 0x34]
inc eax
mov eax, eax
lea rcx, [0x1400f3ea0]
mov eax, dword [rcx + rax*4]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
and eax, 0xffffff
cmp eax, dword [rsp + 0x20]
jne 0x14008f965
mov eax, dword [rsp + 0x30]
shr eax, 0x18
mov eax, eax
lea rcx, [0x1400f39b0]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x38]
call qword [rdx + rax*8]
movzx eax, ax
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 0
je 0x14008f965
jmp 0x14008f99b
cmp dword [rsp + 0x2c], 0xfffff
jne 0x14008f97e
mov rcx, qword [rsp + 0x50]
call fcn.14008fa20
jmp 0x14008fa06
mov eax, dword [rsp + 0x2c]
shr eax, 0xa
mov ecx, dword [rsp + 0x2c]
or ecx, eax
mov eax, ecx
xor eax, 0xffc00
mov dword [rsp + 0x2c], eax
jmp 0x14008f899
cmp dword [rsp + 0x28], 5
jb 0x14008f9c1
mov eax, dword [rsp + 0x28]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x20]
movzx eax, byte [rcx + rax*8 + 4]
shl eax, 0x18
mov ecx, dword [rsp + 0x28]
add ecx, eax
mov eax, ecx
jmp 0x14008fa06
cmp dword [rsp + 0x28], 1
jne 0x14008f9cd
jmp 0x14008f6e0
cmp dword [rsp + 0x28], 2
jne 0x14008f9eb
mov rax, qword [rsp + 0x50]
mov edx, dword [rax + 0xb8]
mov rcx, qword [rsp + 0x50]
call fcn.1400860c0
jmp 0x14008fa06
cmp dword [rsp + 0x28], 3
jne 0x14008fa01
mov edx, 0x18
mov rcx, qword [rsp + 0x50]
call fcn.1400236b0
mov eax, 0xffff
add rsp, 0x48
ret