Function at 0x14003ad00
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x458
mov rax, qword [0x140088040]
xor rax, rsp
mov qword [rsp + 0x440], rax
mov rbp, qword [rsp + 0x4c8]
xor esi, esi
mov rax, qword [rsp + 0x4b0]
xor bl, bl
mov rdi, qword [rcx + 8]
mov r14d, esi
mov r9, qword [rsp + 0x4b8]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x4c0]
lea r15, [rdi - 0xb]
mov qword [rsp + 0x30], rax
cmp rbp, r15
cmova rbp, r15
cmp dword [rcx + 0x148], esi
jne 0x14003afd4
lea rax, [rdi - 0x10]
cmp rax, 0x3f0
ja 0x14003afd4
lea rax, [rsp + 0x40]
mov qword [rsp + 0x450], r13
mov qword [rsp + 0x20], rax
call fcn.140039030
mov r13d, eax
test eax, eax
jne 0x14003afb1
movzx eax, byte [rsp + 0x41]
mov edx, 2
movzx r9d, byte [rsp + 0x40]
xor eax, 2
or r9d, eax
mov qword [rsp + 0x4a8], r12
nop
movzx eax, byte [rsp + rdx + 0x40]
inc rdx
movzx ecx, al
neg cl
or cl, al
not cl
shr cl, 7
or bl, cl
movzx eax, bl
neg al
or al, bl
not al
movzx eax, al
shr rax, 7
add r14, rax
cmp rdx, rdi
jb 0x14003adc0
movzx ecx, bl
lea rax, [r14 - 8]
neg ecx
shr rax, 0x3f
shr ecx, 0x1f
mov r11, rdi
dec ecx
mov ebx, ebp
and ecx, 1
sub r11, r14
or ecx, eax
sub r11, 3
or r9d, ecx
mov r8, rbp
mov eax, r9d
neg eax
shr eax, 0x1f
neg eax
mov ecx, eax
mov edx, eax
not ecx
and rax, rbx
and r11, rcx
and edx, 0x4100
or r11, rax
sub r8, r11
shr r8, 0x3f
mov r10d, r8d
or r8d, r9d
neg r8d
neg r10d
shr r10d, 0x1f
shr r8d, 0x1f
mov r13d, r10d
neg r13d
neg r8d
and r13d, ecx
mov ecx, listen
and r13d, 0x4400
or r13d, edx
neg r13d
cmp r15, 0x40
jb 0x14003aeea
movsx eax, r8b
and r15d, 0x3f
mov rdx, rdi
sub rdx, r15
movd xmm1, eax
punpcklbw xmm1, xmm1
punpcklwd xmm1, xmm1
pshufd xmm1, xmm1, 0
andnps xmm1, xmmword [0x14007e530]
nop dword [rax + rax]
movdqu xmm0, xmmword [rsp + rcx + 0x40]
andps xmm0, xmm1
movdqu xmmword [rsp + rcx + 0x40], xmm0
movdqu xmm0, xmmword [rsp + rcx + 0x50]
andps xmm0, xmm1
movdqu xmmword [rsp + rcx + 0x50], xmm0
movdqu xmm0, xmmword [rsp + rcx + 0x60]
andps xmm0, xmm1
movdqu xmmword [rsp + rcx + 0x60], xmm0
movdqu xmm0, xmmword [rsp + rcx + 0x70]
andps xmm0, xmm1
movdqu xmmword [rsp + rcx + 0x70], xmm0
add rcx, 0x40
cmp rcx, rdx
jb 0x14003aea0
cmp rcx, rdi
jae 0x14003aefd
not r8b
nop dword [rax]
and byte [rsp + rcx + 0x40], r8b
inc rcx
cmp rcx, rdi
jb 0x14003aef0
neg r10d
lea r12, [rsp + 0x40]
mov r14d, r10d
mov ecx, r10d
not r14d
sub rdi, rbp
and r14, r11
mov rax, rbx
and rax, rcx
add r12, rdi
or r14, rax
test rbp, rbp
je 0x14003af91
lea r15, [rbp - 1]
nop dword [rax]
mov rax, rsi
sub rax, r14
shr rax, 0x3f
neg eax
shr eax, 0x1f
test r15, r15
je 0x14003af79
mov ebx, eax
mov r10, r12
neg ebx
mov r11, r15
mov edi, ebx
not edi
movzx ecx, byte [r10]
movzx r8d, bl
movzx edx, byte [r10 + 1]
lea r10, [r10 + 1]
and r8b, cl
movzx ecx, dil
and cl, dl
or r8b, cl
mov byte [r10 - 1], r8b
sub r11, 1
jne 0x14003af52
movzx r9d, byte [r12 + rbp - 1]
neg al
and al, r9b
inc rsi
mov byte [r12 + rbp - 1], al
cmp rsi, rbp
jb 0x14003af30
mov rcx, qword [rsp + 0x30]
mov r8, rbp
mov rdx, r12
call fcn.140065900
mov rax, qword [rsp + 0x38]
mov r12, qword [rsp + 0x4a8]
mov qword [rax], r14
mov rax, qword [fcn.140065540]
lea rcx, [rsp + 0x40]
xor edx, edx
mov r8d, 0x400
call rax
mov eax, r13d
mov r13, qword [rsp + 0x450]
jmp 0x14003afd9
mov eax, 0xffffbf80
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.140042de0
add rsp, 0x458
pop r15
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret