Function at 0x1400987f0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x170
mov rax, qword [0x1402bfac8]
vpxor xmm0, xmm0, xmm0
mov rbp, rdx
mov r13, rcx
mov r12, rdx
mov rbx, r8
shr rbp, 3
mov rdx, rcx
lea rsi, [rsp + 0xe0]
vmovdqu xmmword [rsp + 0x110], xmm0
mov r8d, ebp
mov rcx, rsi
mov qword [rsp + 0x11c], rax
movsxd r14, ebp
mov dword [rsp + 0x124], 0
mov qword [rsp + 0x168], 0
vmovdqu xmmword [rsp + 0xe0], xmm0
vmovdqu xmmword [rsp + 0xf0], xmm0
vmovdqu xmmword [rsp + 0x100], xmm0
call sym.Transform
mov eax, ebp
sar eax, 0x1f
shr eax, 0x1a
lea edx, [rax + rbp]
and edx, 0x3f
sub edx, eax
mov eax, ebp
sub eax, edx
cmp ebp, eax
jle 0x140098b8c
sub ebp, eax
lea rdi, [rsp + 0x128]
cdqe
lea ecx, [rbp - 1]
lea rdx, [r13 + rax]
lea r8, [rcx + 1]
mov rcx, rdi
call sym.memcpy
movsxd r8, ebp
lea eax, [rbp + 1]
and r12d, 7
je 0x140098b66
mov r9d, 1
mov ecx, r12d
mov dword [rsp + 0x168], eax
mov dword [rsp + 0x16c], 0
mov edx, r9d
shl edx, cl
mov ecx, 8
sub ecx, r12d
sub edx, 1
shl edx, cl
mov ecx, 7
and dl, byte [r13 + r14]
sub ecx, r12d
shl r9d, cl
xor edx, r9d
mov byte [rsp + r8 + 0x128], dl
cmp eax, 0x38
jle 0x140098b81
cmp eax, 0x3f
jg 0x140098946
movsxd rcx, eax
mov edx, 0x40
lea r8, [rsi + rcx + 0x48]
sub edx, eax
je 0x14009893b
xor eax, eax
mov ecx, eax
add eax, 1
mov byte [r8 + rcx], 0
cmp eax, edx
jb 0x14009892d
mov dword [rsp + 0x168], 0x40
mov r8d, 0x40
mov rdx, rdi
mov rcx, rsi
call sym.Transform
xor eax, eax
lea ecx, [rax + 0x48]
mov r8d, 0x38
xor edx, edx
movsxd rcx, ecx
sub r8d, eax
add rcx, rsi
call sym.memset
mov eax, dword [rsp + 0x120]
add eax, 1
jne 0x140098986
add dword [rsp + 0x124], 1
mov ebp, eax
mov r10d, eax
mov r11d, eax
movzx eax, al
shr ebp, 8
shl rax, 8
mov r9d, dword [rsp + 0x124]
mov dword [rsp + 0x168], 0x38
shr r11d, 0x10
movzx ebp, bpl
shr r10d, 0x18
mov qword [rsp + 0x120], 0
or rax, rbp
movzx r11d, r11b
movzx r10d, r10b
mov edx, r9d
shl rax, 8
mov ecx, r9d
mov r8d, r9d
movzx r9d, r9b
shr r8d, 8
or rax, r11
shr ecx, 0x10
lea rbp, [rsp + 0x20]
shl rax, 8
movzx r8d, r8b
movzx ecx, cl
shr edx, 0x18
or rax, r10
movzx edx, dl
shl rax, 8
or rax, r9
shl rax, 8
or rax, r8
mov r8d, 0x40
shl rax, 8
or rax, rcx
mov rcx, rsi
lea rsi, [rsp + 0x60]
shl rax, 8
or rax, rdx
mov rdx, rdi
lea rdi, [rsp + 0xa0]
mov qword [rsp + 0x160], rax
call sym.Transform
xor r8d, r8d
mov rdx, rsi
mov rcx, rbp
vmovdqu xmm1, xmmword [rsp + 0xe0]
vmovdqu xmm3, xmmword [rsp + 0xf0]
vmovdqu xmm4, xmmword [rsp + 0x100]
vmovdqu xmm5, xmmword [rsp + 0x110]
vmovdqu xmmword [rsp + 0x20], xmm1
vmovdqu xmmword [rsp + 0x30], xmm3
vmovdqu xmmword [rsp + 0x40], xmm4
vmovdqu xmmword [rsp + 0x50], xmm5
call sym.RND512P
mov rdx, rdi
mov rcx, rsi
mov r8d, 1
call sym.RND512P
mov rdx, rsi
mov rcx, rdi
mov r8d, 2
call sym.RND512P
mov rdx, rdi
mov rcx, rsi
mov r8d, 3
call sym.RND512P
mov rdx, rsi
mov rcx, rdi
mov r8d, 4
call sym.RND512P
mov rdx, rdi
mov rcx, rsi
mov r8d, 5
call sym.RND512P
mov rdx, rsi
mov rcx, rdi
mov r8d, 6
call sym.RND512P
mov rdx, rdi
mov rcx, rsi
mov r8d, 7
call sym.RND512P
mov rdx, rsi
mov rcx, rdi
mov r8d, 8
call sym.RND512P
mov r8d, 9
mov rdx, rbp
mov rcx, rsi
call sym.RND512P
vmovdqu ymm1, ymmword [rsp + 0x100]
vpxor ymm0, ymm1, ymmword [rsp + 0x40]
vmovdqu ymmword [rsp + 0x100], ymm0
vmovdqu xmm2, xmmword [rsp + 0x110]
vmovdqu xmmword [rbx], xmm0
vmovdqu xmmword [rbx + 0x10], xmm2
vzeroupper
add rsp, 0x170
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
movsxd rbp, ebp
mov dword [rsp + 0x168], eax
mov byte [rsp + rbp + 0x128], pe_nt_image_headers64
cmp eax, 0x38
jg 0x140098915
jne 0x140098959
jmp 0x140098972
and r12d, 7
jne 0x140098bac
mov byte [rsp + 0x128], pe_nt_image_headers64
mov eax, 1
lea rdi, [rsp + 0x128]
jmp 0x140098959
movsxd r14, eax
xor r8d, r8d
mov eax, 1
lea rdi, [rsp + 0x128]
jmp 0x1400988c4