Function at 0x180090570
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
push r12
push r13
push r14
push r15
sub rsp, 0x178
lea r13d, [rdx + 0x3ff]
mov r14, r9
mov r15d, edx
mov r12, rcx
cmp edx, r13d
jae 0x18009091c
mov qword [rax + 8], rbx
mov ecx, 0xfffffe0c
movzx ebx, byte [rsp + 0x1a8]
mov edx, 0x5dc
mov qword [rax - 0x28], rbp
movzx ebp, byte [rsp + 0x1a8]
mov qword [rax - 0x30], rsi
mov rsi, qword [rsp + 0x40]
mov qword [rax - 0x38], rdi
movzx edi, byte [rsp + 0x1a8]
nop word [rax + rax]
cmp r15d, 0x170
ja 0x18009075b
je 0x18009074f
mov eax, r15d
sub eax, 5
je 0x180090742
sub eax, 0x81
je 0x18009068a
sub eax, 0x67
je 0x180090656
sub eax, 0x26
je 0x180090632
cmp eax, 0x37
jne 0x1800908ef
movzx ebx, byte [rsp + 0x150]
movzx edi, byte [rsp + 0x151]
jmp 0x1800908ef
xor edx, edx
mov r8d, 0x268
mov rcx, r14
call fcn.1800ae1d0
mov rax, qword [rsp + 0x1b0]
mov qword [r14 + 0x268], rax
jmp 0x1800908e5
xor esi, esi
mov rcx, r12
cmp qword [r12 + 0x18], 0x10
jb 0x180090667
mov rcx, qword [r12]
mov eax, dword [r12 + 0x10]
lea r9, [rsp + 0x50]
mov r8d, 0x44
mov dword [rsp + 0x38], eax
lea rdx, [rsp + 0x38]
call fcn.180025ec0
jmp 0x1800908e5
movzx eax, byte [r14 + 0x13]
mov byte [r14 + 0x14], al
movzx eax, byte [r14 + 0x12]
mov byte [r14 + 0x13], al
movzx eax, byte [r14 + 0x11]
mov byte [r14 + 0x12], al
movzx eax, byte [r14 + 0x10]
mov byte [r14 + 0x11], al
movzx eax, byte [r14 + 0xf]
mov byte [r14 + 0x10], al
movzx eax, byte [r14 + 0xe]
mov byte [r14 + 0xf], al
movzx eax, byte [r14 + 0xd]
mov byte [r14 + 0xe], al
movzx eax, byte [r14 + 0xc]
mov byte [r14 + 0xd], al
movzx eax, byte [r14 + 0xb]
mov byte [r14 + 0xc], al
movzx eax, byte [r14 + 0xa]
mov byte [r14 + 0xb], al
movzx eax, byte [r14 + 9]
mov byte [r14 + 0xa], al
movzx eax, byte [r14 + 8]
mov byte [r14 + 9], al
movzx eax, byte [r14 + 7]
mov byte [r14 + 8], al
movzx eax, byte [r14 + 6]
mov byte [r14 + 7], al
movzx eax, byte [r14 + 5]
mov byte [r14 + 6], al
movzx eax, byte [r14 + 4]
mov byte [r14 + 5], al
movzx eax, byte [r14 + 3]
mov byte [r14 + 4], al
movzx eax, byte [r14 + 2]
mov byte [r14 + 3], al
movzx eax, byte [r14 + 1]
mov byte [r14 + 2], al
movzx eax, byte [r14]
mov byte [r14 + 1], al
jmp 0x1800908ef
mov eax, dword [r12]
mov dword [r14 + 0x28], eax
jmp 0x1800908ef
mov qword [r14 + 0x260], r12
jmp 0x1800908ef
mov eax, r15d
sub eax, 0x1a7
je 0x18009083a
sub eax, 0x26
je 0x1800907c5
sub eax, 0x37
je 0x1800907b9
sub eax, 0x26
je 0x18009078e
cmp eax, 0x37
jne 0x1800908ef
mov byte [rsp + 0x151], dil
jmp 0x1800908ef
mov rax, qword [r14 + 0x260]
lea rdx, [rsp + 0x40]
xor r9d, r9d
mov r8, r14
movzx ecx, byte [rax + 0x338]
mov dword [rsp + 0x40], ecx
lea ecx, [r9 + 0x55]
call fcn.180089dc0
jmp 0x1800908e5
mov byte [rsp + 0x150], bl
jmp 0x1800908ef
mov word [r14 + 6], cx
lea r9, [rsp + 0x30]
mov dword [r14 + 0x40], 0xfe0cfe0c
lea r8, [rsp + 0x38]
mov dword [r14 + 0x44], 0xfe0cfe0c
mov dword [r14 + 0x48], 0xfe0cfe0c
mov dword [r14 + 0x4c], 0xfe0cfe0c
mov rcx, qword [r14 + 0x260]
movzx eax, word [rcx + 0x410]
mov word [rsp + 0x38], ax
movzx eax, word [rcx + 0x40e]
mov rcx, r14
mov word [rsp + 0x1a8], ax
lea rax, [rsp + 0x1a8]
mov word [rsp + 0x30], dx
mov edx, 0x6b
mov qword [rsp + 0x20], rax
call fcn.1800102d0
jmp 0x1800908e5
cmp qword [r14 + 0x18], 0x10
mov r9, r14
jb 0x180090847
mov r9, qword [r14]
cmp rsi, qword [r14 + 0x10]
jae 0x1800908ef
nop dword [rax]
nop word [rax + rax]
mov r8d, 0xc9
mov eax, r8d
sub eax, 0xc9
je 0x1800908c5
sub eax, 1
je 0x1800908bb
sub eax, 1
je 0x1800908a0
cmp eax, 1
jne 0x1800908cf
movzx eax, bl
movzx ecx, dil
movzx ecx, byte [rsp + rcx + 0x50]
add cl, byte [rsp + rax + 0x50]
movzx eax, cl
movzx ecx, byte [rsp + rax + 0x50]
xor byte [r9 + rsi], cl
inc rsi
jmp 0x1800908cf
movzx eax, dil
lea rdx, [rsp + 0x50]
add rdx, rax
movzx ecx, bl
movzx eax, byte [rdx]
mov byte [rsp + rcx + 0x50], al
mov byte [rdx], bpl
jmp 0x1800908cf
movzx eax, bl
movzx ebp, byte [rsp + rax + 0x50]
jmp 0x1800908cf
inc bl
movzx eax, bl
add dil, byte [rsp + rax + 0x50]
inc r8d
cmp r8d, 0xcd
jb 0x180090866
cmp rsi, qword [r14 + 0x10]
jb 0x180090860
mov ecx, 0xfffffe0c
mov edx, 0x5dc
add r15d, 0x5d
cmp r15d, r13d
jb 0x1800905e0
mov rdi, qword [rsp + 0x160]
mov rsi, qword [rsp + 0x168]
mov rbp, qword [rsp + 0x170]
mov rbx, qword [rsp + 0x1a0]
add rsp, 0x178
pop r15
pop r14
pop r13
pop r12
ret