Function at 0x140087d20
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, 0xa8
mov rsi, rdx
mov qword [rsp + 0x38], rcx
mov rcx, qword [rdx + 0x20]
mov rdx, qword [rdx + 0x28]
mov qword [rsp + 0x28], r8
call fcn.140085a30
mov rcx, qword [rsi]
mov qword [rsp + 0x40], rsi
mov r8, qword [rsi + 8]
mov qword [rsp + 0x30], r8
and r8, rax
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
xor edx, edx
pcmpeqd xmm1, xmm1
movdqu xmm2, xmmword [rcx + r8]
movdqa xmm3, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r10d, xmm3
test r10d, r10d
je 0x140087f10
mov rax, qword [rsp + 0x28]
movzx r11d, byte [rax]
mov qword [rsp + 0x48], rdx
jmp 0x140087dcf
test sil, sil
je 0x14008809d
lea eax, [r10 - 1]
and ax, r10w
mov r10d, eax
mov rdx, qword [rsp + 0x48]
je 0x140087f10
tzcnt r15d, r10d
add r15, r8
and r15, qword [rsp + 0x30]
mov rax, r15
neg rax
lea rax, [rax + rax*4]
shl rax, 4
lea r12, [rcx + rax]
add rax, rcx
add rax, 0xffffffffffffffb0
cmp r11d, 1
je 0x140087e70
cmp r11d, 2
jne 0x14008809d
movzx esi, byte [rax]
cmp sil, 2
jne 0x140087db0
mov rdx, qword [rsp + 0x28]
mov rsi, qword [rdx + 8]
mov r13, qword [rsi + 0x10]
mov r14, qword [r12 - 0x48]
cmp r13, qword [r14 + 0x10]
jne 0x140087db9
mov rbp, qword [rsi + 8]
mov r14, qword [r14 + 8]
xor esi, esi
cmp r13, rsi
je 0x140087ea1
movzx edi, byte [rbp + rsi]
movzx r9d, byte [r14 + rsi]
inc rsi
lea ebx, [rdi - 0x41]
cmp bl, 0x1a
setb bl
shl bl, 5
lea edx, [r9 - 0x41]
cmp dl, 0x1a
setb dl
shl dl, 5
or bl, dil
or dl, r9b
cmp bl, dl
je 0x140087e30
jmp 0x140087db9
movzx esi, byte [rax]
cmp sil, 1
jne 0x140087db0
mov rdx, qword [rsp + 0x28]
cmp byte [rdx + 1], 0
movzx esi, byte [r12 - 0x4f]
je 0x140087e98
test sil, sil
jne 0x140087ea1
jmp 0x140087db9
test sil, sil
jne 0x140087db9
mov rdx, qword [rsp + 0x28]
mov r13, qword [rdx + 0x20]
cmp r13, qword [r12 - 0x30]
jne 0x140087db9
mov rdx, qword [rsp + 0x28]
mov rbp, qword [rdx + 0x18]
mov r14, qword [r12 - 0x38]
xor esi, esi
nop word cs:[rax + rax]
cmp r13, rsi
je 0x140087f35
movzx edx, byte [rbp + rsi]
movzx r9d, byte [r14 + rsi]
inc rsi
lea edi, [rdx - 0x41]
cmp dil, 0x1a
setb bl
shl bl, 5
lea edi, [r9 - 0x41]
cmp dil, 0x1a
setb dil
shl dil, 5
or bl, dl
or dil, r9b
cmp bl, dil
je 0x140087ed0
jmp 0x140087db9
pcmpeqb xmm2, xmm1
pmovmskb eax, xmm2
test eax, eax
jne 0x14008800f
add r8, rdx
add r8, 0x10
add rdx, 0x10
and r8, qword [rsp + 0x30]
jmp 0x140087d7d
shl r15, 4
lea rdx, [r15 + r15*4]
sar rdx, 4
movabs r8, 0xcccccccccccccccd
imul r8, rdx
lea r9, [r8 - 0x10]
and r9, qword [rsp + 0x30]
movdqu xmm0, xmmword [rcx + r9]
pcmpeqd xmm1, xmm1
pcmpeqb xmm0, xmm1
psllw xmm0, 7
pmovmskb r10d, xmm0
movdqu xmm0, xmmword [rcx + r8]
pcmpeqb xmm0, xmm1
pmovmskb edx, xmm0
test r10d, r10d
mov r11, qword [rsp + 0x40]
je 0x140087f93
bsr r10w, r10w
xor r10d, 0xf
jmp 0x140087f98
mov r10w, 0x10
or edx, 0x10000
tzcnt edx, edx
add r10d, edx
mov dl, pe_nt_image_headers64
cmp r10w, 0xf
ja 0x140087fb4
inc qword [r11 + 0x10]
mov dl, 0xff
mov byte [rcx + r8], dl
mov byte [rcx + r9 + 0x10], dl
dec qword [r11 + 0x18]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movdqu xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movaps xmmword [rsp + 0x80], xmm3
movdqu xmm3, xmmword [rax + 0x40]
movdqa xmmword [rsp + 0x90], xmm3
movdqa xmmword [rsp + 0x70], xmm2
movdqa xmmword [rsp + 0x60], xmm1
movdqa xmmword [rsp + 0x50], xmm0
movabs rax, 0x8000000000000000
cmp qword [rsp + 0x80], rax
jne 0x140088023
mov rax, qword [rsp + 0x38]
movabs rcx, 0x8000000000000000
mov qword [rax], rcx
jmp 0x140088088
lea rax, [rsp + 0x80]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
mov rax, qword [rsp + 0x38]
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
cmp byte [rsp + 0x50], 2
jb 0x140088071
mov rsi, qword [rsp + 0x58]
mov rax, qword [rsi]
mov rdx, qword [rsi + 8]
lea rcx, [rsi + 0x18]
mov r8, qword [rsi + 0x10]
call qword [rax + 0x20]
mov rcx, qword [0x1401ba0e0]
xor edx, edx
mov r8, rsi
call fcn.1401336c4
lea rcx, [rsp + 0x78]
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
call qword [rax + 0x20]
nop
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.aL4ZxuiD2joHfeTkYfCMSoFM1dyjFNITCe4ZtDkiAVn3IADE8oBfIxNF7ajquCTO4hetpqP9fFCyxw62wFsem9KzZpcea2X9blj9yrF8Jm3sjdJrLliji
lea r8, str.0tYzswqqRgXXMcnz70ujq68TKpxBX87M0edTR7G0v6AinIK3LOI115fDJUzxCRz6AtJCVZXdBgGYK4VT3ryj19xGDTiu
mov edx, 0x28
call fcn.140018100
mov rdi, rax
mov rcx, qword [0x1401ba0e0]
xor edx, edx
mov r8, rsi
call fcn.1401336c4
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
lea rcx, [rsp + 0x78]
mov r8, qword [rsp + 0x70]
call qword [rax + 0x20]
mov rcx, rdi
call fcn.140133bd0
call fcn.14001a1a0
int3