Function at 0x180188020
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x98
xor ebx, ebx
mov r11, r8
mov rbp, rdx
mov r10, rcx
mov dword [rsp + 0x70], ebx
cmp byte [rdx + 5], bl
jbe 0x1801882ce
mov r15d, dword [rsp + 0x118]
mov r12, qword [rsp + 0xe8]
mov r8, qword [rsp + 0x128]
xor esi, esi
lea rdx, [0x180000000]
mov dword [rsp + 0x74], esi
xor r14d, r14d
test byte [r8 + 0x10], 0x40
je 0x180188092
mov r14d, dword [r8 + 0x18]
xor edi, edi
test r15d, r15d
je 0x1801882b5
nop dword [rax]
movzx eax, word [rbp + 6]
mov rcx, r10
mov qword [rsp + 0x78], 0xffffffffffffffff
add eax, ebx
movzx edx, word [rdx + rax*2 + 0x12e90]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x120]
mov dword [rsp + 0x58], edi
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x48], r8
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0x110]
mov r8, r11
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r9
xor r9d, r9d
call fcn.180187c00
test eax, eax
js 0x1801882d0
mov rax, qword [rsp + 0x130]
lea r13d, [rsi + rdi]
mov rsi, qword [rsp + 0x78]
mov rax, qword [rax + 0x18]
lea rdx, [0x180000000]
mov qword [rax + r13*8], rsi
movzx eax, byte [rbp + 0xb]
add eax, ebx
mov ebp, dword [rdx + rax*4 + 0x12628]
test ebp, ebp
je 0x18018827e
mov rcx, qword [rsp + 0xe0]
lea r8, [rsp + 0x80]
mov rdx, rsi
call fcn.18019f810
test eax, eax
js 0x1801882d0
mov eax, dword [rsi + 0xf8]
mov rbx, qword [rsp + 0x80]
xor eax, ebp
mov dword [rbx + 0xf8], eax
mov qword [rbx + 0xf0], rsi
mov eax, dword [rbx + 0x98]
shr rax, 0x18
test al, 1
je 0x1801881bc
mov rdx, qword [rsp + 0xe0]
mov r8d, ebp
mov rcx, rbx
call fcn.18019a3c0
test eax, eax
js 0x18018824f
xor eax, eax
jmp 0x18018824c
xor eax, eax
and qword [rbx + 0x98], 0xfffffffffe0fffff
movabs rcx, 0xfff0000000000000
mov qword [rsp + 0x78], rcx
movabs rcx, 0x7ff0000000000000
mov qword [rbx + 0x140], rax
movsd xmm0, qword [rsp + 0x78]
mov qword [rsp + 0x78], rcx
movabs rcx, 0x8000000000000000
mov qword [rbx + 0x178], rax
movsd qword [rbx + 0x158], xmm0
movsd xmm1, qword [rsp + 0x78]
mov qword [rbx + 0x168], rcx
movabs rcx, 0x7fffffffffffffff
mov qword [rbx + 0x180], 0xffffffffffffffff
movsd qword [rbx + 0x160], xmm1
mov qword [rbx + 0x148], rax
mov qword [rbx + 0x150], rax
mov qword [rbx + 0x170], rcx
mov r12, rbx
mov ebx, dword [rsp + 0x70]
test eax, eax
js 0x1801882d0
mov rax, qword [rsp + 0x130]
mov dword [r12 + 0xc8], r14d
mov dword [r12 + 0xcc], edi
mov rax, qword [rax + 0x18]
lea rdx, [0x180000000]
mov qword [rax + r13*8], r12
mov r10, qword [rsp + 0xe0]
mov rbp, qword [rsp + 0xe8]
mov r8, qword [rsp + 0x128]
mov esi, dword [rsp + 0x74]
mov r9, qword [rsp + 0xf8]
mov r11, qword [rsp + 0xf0]
inc edi
cmp edi, r15d
jb 0x1801880a0
movzx eax, byte [rbp + 5]
inc ebx
add esi, r15d
mov dword [rsp + 0x70], ebx
mov dword [rsp + 0x74], esi
cmp ebx, eax
jb 0x180188084
xor eax, eax
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret