Function at 0x140016c62
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1c8
mov rbx, r9
mov rdi, r8
mov rsi, rdx
mov qword [rsp + 0x48], rcx
mov rax, qword [0x1404435e8]
test rax, rax
je 0x140017015
test ax, ax
js 0x140016cb0
mov rax, qword [0x1404435e8]
test rax, rax
je 0x14001701f
shr rax, 0xa
and al, 1
jmp 0x140016cb2
mov al, 2
lea rcx, [rsi - 1]
cmp rcx, 0x40
jae 0x140017029
mov qword [rsp + 0x50], rsi
movzx ecx, sil
movabs rdx, 0x6a09e667f2bdc908
xor rdx, rcx
lea rbp, [rsp + 0xa8]
xorps xmm0, xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x10], xmm0
movups xmmword [rbp], xmm0
mov qword [rbp - 0x50], rdx
movaps xmm1, xmmword [0x1400987c0]
movups xmmword [rbp - 0x48], xmm1
movaps xmm1, xmmword [0x1400987d0]
movups xmmword [rbp - 0x38], xmm1
movaps xmm1, xmmword [0x1400987e0]
movups xmmword [rbp - 0x28], xmm1
movabs rdx, 0x5be0cd19137e2179
mov qword [rbp - 0x18], rdx
movups xmmword [rbp - 0x10], xmm0
mov word [rbp + 0x80], 0x100
mov byte [rbp + 0x82], cl
mov byte [rbp + 0x83], al
mov byte [rbp + 0x84], 0
shl rbx, 4
add rbx, rdi
xor r14d, r14d
lea r13, [rsp + 0x58]
xor r15d, r15d
xor ebp, ebp
mov rsi, qword [rdi]
mov r12, qword [rdi + 8]
test bpl, bpl
je 0x140016e3e
movzx eax, bpl
mov ebp, 0x80
sub rbp, rax
cmp rbp, r12
cmova rbp, r12
mov rcx, rbp
add rcx, rax
jb 0x140017029
cmp rcx, 0x80
ja 0x140017029
lea rcx, [rsp + rax]
add rcx, 0xa8
mov rdx, rsi
mov r8, rbp
call fcn.1400931b0
mov al, byte [rsp + 0x128]
add al, bpl
mov byte [rsp + 0x128], al
add rsi, rbp
sub r12, rbp
je 0x140016e42
mov al, byte [rsp + 0x129]
mov cl, byte [rsp + 0x12b]
mov byte [rsp + 0x30], al
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r14
mov byte [rsp + 0x38], 1
mov r8d, 0x80
lea rdx, [rsp + 0xa8]
mov r9, r13
call fcn.140017b58
mov r15, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x98]
mov eax, 0x80
add r14, rax
adc r15, 0
mov qword [rsp + 0x98], r14
mov qword [rsp + 0xa0], r15
mov byte [rsp + 0x128], 0
xor eax, eax
jmp 0x140016e45
xor r12d, r12d
mov rcx, r12
sub rcx, 1
mov ebp, 0
cmovae rbp, rcx
and rbp, 0xffffffffffffff80
je 0x140016ec4
sub r12, rbp
jb 0x140017029
mov al, byte [rsp + 0x129]
mov cl, byte [rsp + 0x12b]
mov byte [rsp + 0x30], al
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r14
mov byte [rsp + 0x38], 1
mov rdx, rsi
mov r8, rbp
mov r9, r13
call fcn.140017b58
mov r15, qword [rsp + 0xa0]
add rsi, rbp
add rbp, qword [rsp + 0x98]
adc r15, 0
mov qword [rsp + 0x98], rbp
mov qword [rsp + 0xa0], r15
mov al, byte [rsp + 0x128]
mov r14, rbp
movzx eax, al
mov ebp, 0x80
sub rbp, rax
cmp rbp, r12
cmova rbp, r12
mov rcx, rbp
add rcx, rax
jb 0x140017029
cmp rcx, 0x80
ja 0x140017029
lea rcx, [rsp + rax]
add rcx, 0xa8
mov rdx, rsi
mov r8, rbp
call fcn.1400931b0
add bpl, byte [rsp + 0x128]
mov byte [rsp + 0x128], bpl
add rdi, 0x10
cmp rbx, rdi
jne 0x140016d68
movups xmm0, xmmword [rsp + 0x58]
movups xmm1, xmmword [rsp + 0x68]
movups xmm2, xmmword [rsp + 0x78]
movups xmm3, xmmword [rsp + 0x88]
movaps xmmword [rsp + 0x1b0], xmm3
movaps xmmword [rsp + 0x1a0], xmm2
movaps xmmword [rsp + 0x190], xmm1
movaps xmmword [rsp + 0x180], xmm0
cmp bpl, 0x81
jae 0x140017029
movzx r8d, bpl
mov al, byte [rsp + 0x129]
mov cl, byte [rsp + 0x12b]
mov byte [rsp + 0x30], al
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r14
mov byte [rsp + 0x38], 0
lea rsi, [rsp + 0x180]
lea rdx, [rsp + 0xa8]
mov r9, rsi
call fcn.140017b58
movaps xmm0, xmmword [rsi]
movaps xmm1, xmmword [rsi + 0x10]
movaps xmm2, xmmword [rsi + 0x20]
movaps xmm3, xmmword [rsi + 0x30]
movzx eax, byte [rsp + 0x12a]
movaps xmmword [rsp + 0x130], xmm0
movaps xmmword [rsp + 0x140], xmm1
movaps xmmword [rsp + 0x150], xmm2
movaps xmmword [rsp + 0x160], xmm3
mov byte [rsp + 0x170], al
cmp rax, 0x41
jae 0x140017029
mov r8, qword [rsp + 0x50]
cmp rax, r8
jne 0x14001702d
lea rdx, [rsp + 0x130]
mov rcx, qword [rsp + 0x48]
call fcn.1400931b0
nop
add rsp, 0x1c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.140096f98
jmp 0x140016c93
call fcn.140096f98
jmp 0x140016ca8
ud2
call fcn.140094a0b
ud2