Function at 0x140015330
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, 0x1f8
mov rbx, r9
mov r14, r8
mov rsi, rdx
mov qword [rsp + 0x40], rcx
mov rax, qword [0x141dd7100]
test rax, rax
je 0x14001578b
and eax, 0x8000
xor edx, edx
mov cl, 2
or rax, rdx
jne 0x14001538c
mov rax, qword [0x141dd7100]
test rax, rax
je 0x140015795
and eax, 0x400
xor ecx, ecx
or rax, rcx
setne cl
lea rax, [rsi - 1]
cmp rax, 0x40
jae 0x14001579f
xorps xmm0, xmm0
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmmword [rsp + 0x1d0], xmm0
movaps xmmword [rsp + 0x1c0], xmm0
movaps xmmword [rsp + 0x1b0], xmm0
movaps xmmword [rsp + 0x1a0], xmm0
movaps xmmword [rsp + 0x190], xmm0
movaps xmmword [rsp + 0x180], xmm0
movaps xmmword [rsp + 0x170], xmm0
movabs rax, 0x6a09e667f2bdc908
xor rax, rsi
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
lea r15, [rsp + 0xd0]
mov qword [rsp + 0xd0], rax
movabs rax, 0xbb67ae8584caa73b
mov qword [rsp + 0xd8], rax
movabs rax, 0x3c6ef372fe94f82b
mov qword [rsp + 0xe0], rax
movabs rax, 0xa54ff53a5f1d36f1
mov qword [rsp + 0xe8], rax
movabs rax, 0x510e527fade682d1
mov qword [rsp + 0xf0], rax
movabs rax, 0x9b05688c2b3e6c1f
mov qword [rsp + 0xf8], rax
movabs rax, 0x1f83d9abfb41bd6b
mov qword [rsp + 0x100], rax
movabs rax, 0x5be0cd19137e2179
mov qword [rsp + 0x108], rax
movaps xmmword [rsp + 0x110], xmm0
mov byte [rsp + 0x120], 0
mov qword [rsp + 0x48], rsi
mov byte [rsp + 0x121], sil
mov byte [rsp + 0x122], cl
mov word [rsp + 0x123], 1
shl rbx, 4
add rbx, r14
xor ebp, ebp
nop word cs:[rax + rax]
mov r13, qword [r14]
mov rdi, qword [r14 + 8]
test bpl, bpl
je 0x1400155c0
movzx eax, bpl
mov r12d, pe_nt_image_headers64
sub r12, rax
cmp r12, rdi
mov rbp, rdi
cmovb rbp, r12
mov rcx, rbp
add rcx, rax
jb 0x14001579f
cmp rcx, 0x80
ja 0x14001579f
lea rcx, [rsp + rax]
add rcx, 0x50
mov rdx, r13
mov r8, rbp
call fcn.14005c778
movzx eax, byte [rsp + 0x120]
add al, bpl
mov byte [rsp + 0x120], al
mov rsi, rdi
sub rsi, rbp
add r13, rbp
cmp r12, rdi
jae 0x1400155bb
movaps xmm0, xmmword [rsp + 0x110]
movzx eax, byte [rsp + 0x123]
movzx ecx, byte [rsp + 0x122]
mov byte [rsp + 0x30], al
movups xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x38], 1
mov r8d, pe_nt_image_headers64
lea rdx, [rsp + 0x50]
mov r9, r15
call fcn.140016610
add qword [rsp + 0x110], 0x80
adc qword [rsp + 0x118], 0
mov byte [rsp + 0x120], 0
xor eax, eax
mov rdi, rsi
jmp 0x1400155c2
xor eax, eax
mov rcx, rdi
sub rcx, 1
mov ebp, 0
cmovae rbp, rcx
and rbp, 0xffffffffffffff80
je 0x140015631
sub rdi, rbp
jb 0x14001579f
movaps xmm0, xmmword [rsp + 0x110]
movzx eax, byte [rsp + 0x123]
movzx ecx, byte [rsp + 0x122]
mov byte [rsp + 0x30], al
movups xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x38], 1
mov rdx, r13
mov r8, rbp
mov r9, r15
call fcn.140016610
add qword [rsp + 0x110], rbp
adc qword [rsp + 0x118], 0
add r13, rbp
movzx eax, byte [rsp + 0x120]
movzx eax, al
mov ebp, pe_nt_image_headers64
sub rbp, rax
cmp rbp, rdi
cmovae rbp, rdi
mov rcx, rbp
add rcx, rax
jb 0x14001579f
cmp rcx, 0x80
ja 0x14001579f
lea rcx, [rsp + rax]
add rcx, 0x50
mov rdx, r13
mov r8, rbp
call fcn.14005c778
add bpl, byte [rsp + 0x120]
mov byte [rsp + 0x120], bpl
add r14, 0x10
cmp r14, rbx
jne 0x1400154f0
movaps xmm0, xmmword [r15]
movaps xmm1, xmmword [r15 + 0x10]
movaps xmm2, xmmword [r15 + 0x20]
movaps xmm3, xmmword [r15 + 0x30]
movaps xmmword [rsp + 0x160], xmm3
movaps xmmword [rsp + 0x150], xmm2
movaps xmmword [rsp + 0x140], xmm1
movaps xmmword [rsp + 0x130], xmm0
cmp bpl, 0x81
jae 0x14001579f
movzx r8d, bpl
movaps xmm0, xmmword [rsp + 0x110]
movzx eax, byte [rsp + 0x123]
movzx ecx, byte [rsp + 0x122]
mov byte [rsp + 0x30], al
movups xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x38], 0
lea rdx, [rsp + 0x50]
lea r9, [rsp + 0x130]
call fcn.140016610
movzx eax, byte [rsp + 0x121]
movaps xmm0, xmmword [rsp + 0x130]
movaps xmm1, xmmword [rsp + 0x140]
movaps xmm2, xmmword [rsp + 0x150]
movaps xmm3, xmmword [rsp + 0x160]
movaps xmmword [rsp + 0x170], xmm0
movaps xmmword [rsp + 0x180], xmm1
movaps xmmword [rsp + 0x190], xmm2
movaps xmmword [rsp + 0x1a0], xmm3
mov byte [rsp + 0x1b0], al
cmp rax, 0x41
jae 0x14001579f
mov r8, qword [rsp + 0x48]
cmp rax, r8
jne 0x14001579f
lea rdx, [rsp + 0x170]
mov rcx, qword [rsp + 0x40]
call fcn.14005c778
nop
add rsp, 0x1f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.1400415a0
jmp 0x140015361
call fcn.1400415a0
jmp 0x14001537f
ud2