Function at 0x14003f770
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
movaps xmmword [rsp + 0xb0], xmm7
movaps xmmword [rsp + 0xa0], xmm6
mov qword [rsp + 0x20], r9
mov rbx, r8
mov rdi, rdx
mov qword [rsp + 0x28], rcx
mov r15, rdi
add r15, 0x20
mov rcx, r15
mov rdx, rbx
call fcn.1400466b0
mov r12, rax
mov rax, rdi
add rax, 0x10
mov qword [rsp + 0x60], rax
cmp qword [rdi + 0x10], 0
jne 0x14003f82c
mov eax, dword [0x1400d5948]
and eax, dword [0x1400d594c]
or eax, 0x876e1f89
xor eax, 0x53b40a46
and eax, 0xe999a8cc
cmp eax, 0xced3d7e6
je 0x14003fb2e
mov eax, dword [0x1400d5950]
xor edx, edx
div dword [0x1400d5954]
mov ebp, eax
or ebp, 0x914ef4a6
xor ebp, 0x4bc98e2d
xor ebp, 0x8dca2685
mov rcx, rdi
mov rdx, r15
call fcn.14003fb60
cmp ebp, 0x64b64b4d
jae 0x14003fb2e
jmp 0x14003f82c
mov r13, qword [rdi]
mov r10, qword [rdi + 8]
mov r9, r12
shr r9, 0x39
movd xmm0, r9d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
mov rbp, qword [rbx + 0x10]
mov rax, rbx
add rax, 8
mov qword [rsp + 0x50], rax
mov rcx, qword [rbx + 8]
xor r15d, r15d
xor edx, edx
and r12, r10
movups xmm7, xmmword [r13 + r12]
movaps xmm0, xmm7
pcmpeqb xmm0, xmm6
pmovmskb esi, xmm0
cmp si, 0
je 0x14003f8fa
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], r15
jmp 0x14003f88c
tzcnt eax, esi
movzx eax, ax
mov rdx, r12
add rdx, rax
and rdx, r10
xor eax, eax
sub rax, rdx
imul rax, rax, 0x38
mov r15, r13
add r15, rax
cmp rbp, qword [r15 - 0x28]
jne 0x14003f90c
mov rdx, qword [r15 - 0x30]
mov r8, rbp
mov qword [rsp + 0x48], rdi
mov rdi, rbx
mov rbx, r9
mov qword [rsp + 0x40], rcx
mov r14, r10
call fcn.1400af110
mov r10, r14
mov rcx, qword [rsp + 0x40]
mov r9, rbx
mov rbx, rdi
mov rdi, qword [rsp + 0x48]
cmp eax, 0
je 0x14003f9ed
jmp 0x14003f90c
mov r15, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x30]
jmp 0x14003f8fa
cmp rdx, 1
mov edx, 1
mov r11, qword [rsp + 0x58]
je 0x14003f950
jmp 0x14003f924
mov ax, si
add ax, 0xffff
and ax, si
cmp ax, 0
mov si, ax
je 0x14003f8ee
jmp 0x14003f88c
pmovmskb eax, xmm7
cmp ax, 0
setne sil
tzcnt edx, eax
movzx edx, dx
mov r11, r12
add r11, rdx
and r11, r10
cmp ax, 0
cmovne r11, r11
and sil, 1
movzx edx, sil
pcmpeqd xmm0, xmm0
pcmpeqb xmm7, xmm0
pmovmskb eax, xmm7
cmp ax, 0
jne 0x14003f973
mov qword [rsp + 0x58], r11
add r15, 0x10
add r12, r15
jmp 0x14003f866
mov eax, dword [0x1400d5958]
add eax, dword [0x1400d595c]
imul eax, eax, 0xcc8c54a7
and eax, 0x7238be5b
sub eax, 0x5e3bd1c5
cmp eax, 0x84140cf2
jae 0x14003fb4a
jmp 0x14003f99c
mov eax, dword [0x1400d5960]
xor edx, edx
div dword [0x1400d5964]
or eax, 0x4fb437ed
add eax, 0x6df1fe42
and eax, 0x621b87d3
mov cl, byte [r13 + r11]
cmp cl, 0xff
setg dl
cmp eax, 0xa301ea9f
ja 0x14003f99c
test dl, 1
jne 0x14003f9d5
jmp 0x14003fa5a
movaps xmm0, xmmword [r13]
pmovmskb eax, xmm0
tzcnt eax, eax
movzx r11d, ax
mov cl, byte [r13 + r11]
jmp 0x14003fa5a
mov rax, qword [r15 - 0x20]
mov rsi, qword [rsp + 0x28]
mov qword [rsi], rax
mov rax, qword [r15 - 0x18]
mov qword [rsi + 8], rax
mov rax, qword [r15 - 0x10]
mov qword [rsi + 0x10], rax
mov rax, qword [r15 - 8]
mov qword [rsi + 0x18], rax
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx]
mov qword [r15 - 0x20], rax
mov rax, qword [rcx + 8]
mov qword [r15 - 0x18], rax
mov rax, qword [rcx + 0x10]
mov qword [r15 - 0x10], rax
mov rax, qword [rcx + 0x18]
mov qword [r15 - 8], rax
mov rdx, qword [rbx]
cmp rdx, 0
je 0x14003fb07
mov rax, qword [rsp + 0x50]
mov rcx, qword [rax]
mov r8d, 1
call fcn.1400541d0
jmp 0x14003fb07
mov rax, qword [rbx]
mov qword [rsp + 0x68], rax
mov rax, qword [rbx + 8]
mov qword [rsp + 0x70], rax
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x78], rax
mov rdx, qword [rsp + 0x20]
mov rax, qword [rdx]
mov qword [rsp + 0x80], rax
mov rax, qword [rdx + 8]
mov qword [rsp + 0x88], rax
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x90], rax
mov rax, qword [rdx + 0x18]
mov qword [rsp + 0x98], rax
and cl, 1
movzx eax, cl
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rdx]
sub rcx, rax
mov qword [rdx], rcx
mov rax, r11
add rax, 0xfffffffffffffff0
and rax, r10
mov byte [r13 + r11], r9b
mov byte [r13 + rax + 0x10], r9b
mov rax, qword [rdi + 0x18]
add rax, 1
mov qword [rdi + 0x18], rax
xor eax, eax
sub rax, r11
imul rax, rax, 0x38
add r13, rax
add r13, 0xffffffffffffffc8
lea rdx, [rsp + 0x68]
mov rcx, r13
mov r8d, 0x38
call fcn.1400ae6d0
mov rsi, qword [rsp + 0x28]
mov byte [rsi], 0x11
mov rax, rsi
movaps xmm6, xmmword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ret 0x8f4f
xor bl, byte [rdx + rbx*8 - 0x3c377231]
jmp 0x14003f99a