Function at 0x1404a72e0
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, 0x58
movaps xmmword [rsp + 0x40], xmm6
mov rax, qword [0x1406a7e00]
xor rax, rsp
mov qword [rsp + 0x38], rax
movzx eax, word [rcx + 0xa]
rol ax, 8
test ax, ax
je 0x1404a7723
mov rsi, rdx
movzx ebp, ax
movzx eax, word [rcx + 8]
rol ax, 8
movzx eax, ax
lea rax, [rax + rax*2]
lea rdi, [rcx + rax*4]
add rdi, 0xc
lea r15, [rdx + 0x30]
xor r12d, r12d
lea rbx, str.start_chainsubtable__u
xorps xmm6, xmm6
lea r14, str.end_chainsubtable__u
jmp 0x1404a73bf
movups xmmword [r15], xmm6
mov rcx, rdi
mov rdx, rsi
call fcn.1404a7750
mov rax, qword [rsi + 0x58]
mov rcx, qword [rax + 0x10]
mov qword [rsi + 0x30], rcx
mov eax, dword [rax + 0x18]
add rax, rcx
mov qword [rsi + 0x38], rax
mov rdx, qword [rsi + 0x10]
mov rcx, qword [rsi + 0x20]
mov r9d, dword [rsi + 0x84]
mov r8, r14
call fcn.140420f90
mov rax, qword [rsi + 0x20]
cmp byte [rax + 0x50], 0
je 0x1404a7723
nop word cs:[rax + rax]
movzx eax, word [rdi]
rol ax, 8
inc dword [rsi + 0x84]
movzx eax, ax
add rdi, rax
inc r12d
cmp r12d, ebp
je 0x1404a7723
mov rcx, qword [rsi + 0x78]
mov eax, dword [rcx + 4]
test eax, eax
je 0x1404a73a0
mov rdx, qword [rcx + 8]
mov ecx, dword [rdi + 4]
bswap ecx
nop word cs:[rax + rax]
test dword [rdx], ecx
jne 0x1404a73f0
add rdx, 0xc
dec eax
jne 0x1404a73e0
jmp 0x1404a73a0
mov dword [rsi + 0x80], ecx
movzx r13d, byte [rdi + 2]
test r13b, 0x20
jne 0x1404a741b
mov rax, qword [rsi + 0x20]
mov eax, dword [rax + 0x30]
and eax, 0xfffffffe
cmp eax, 6
setne al
test r13b, r13b
sets cl
cmp cl, al
je 0x1404a73a0
test r13b, 0x10
jne 0x1404a743e
mov rcx, qword [rsi + 0x20]
mov eax, dword [rcx + 0x30]
and eax, 0xfffffffd
cmp eax, 5
sete al
and r13d, 0x40
shr r13d, 6
xor r13b, al
jmp 0x1404a744a
and r13d, 0x40
shr r13d, 6
mov rcx, qword [rsi + 0x20]
mov r9d, dword [rsi + 0x84]
mov rdx, qword [rsi + 0x10]
mov r8, rbx
call fcn.140420f90
test al, al
je 0x1404a73a0
test r13b, r13b
je 0x1404a76bb
mov rcx, qword [rsi + 0x20]
mov eax, dword [rcx + 0x58]
cmp eax, 2
jb 0x1404a74e8
mov rdx, qword [rcx + 0x68]
lea r9d, [rax - 1]
lea r8, [r9 - 1]
lea r9, [r9 + r9*4]
lea r9, [rdx + r9*4]
xor r10d, r10d
nop word cs:[rax + rax]
mov r11d, dword [r9 + 0x10]
mov dword [rsp + 0x30], r11d
movups xmm0, xmmword [r9]
movaps xmmword [rsp + 0x20], xmm0
mov r11d, dword [rdx + 0x10]
mov dword [r9 + 0x10], r11d
movups xmm0, xmmword [rdx]
movups xmmword [r9], xmm0
mov r11d, dword [rsp + 0x30]
mov dword [rdx + 0x10], r11d
movaps xmm0, xmmword [rsp + 0x20]
movups xmmword [rdx], xmm0
inc r10
mov r11d, r8d
add rdx, 0x14
dec r8
add r9, 0xffffffffffffffec
cmp r10, r11
jb 0x1404a74a0
cmp byte [rcx + 0x53], 0
je 0x1404a7556
mov edx, dword [rcx + 0x58]
cmp edx, eax
cmovb eax, edx
cmp eax, 2
jb 0x1404a7556
mov rcx, qword [rcx + 0x78]
dec eax
lea rdx, [rax - 1]
lea rax, [rax + rax*4]
lea rax, [rcx + rax*4]
xor r8d, r8d
mov r9d, dword [rax + 0x10]
mov dword [rsp + 0x30], r9d
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x20], xmm0
mov r9d, dword [rcx + 0x10]
mov dword [rax + 0x10], r9d
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
mov r9d, dword [rsp + 0x30]
mov dword [rcx + 0x10], r9d
movaps xmm0, xmmword [rsp + 0x20]
movups xmmword [rcx], xmm0
inc r8
mov r9d, edx
add rcx, 0x14
dec rdx
add rax, 0xffffffffffffffec
cmp r8, r9
jb 0x1404a7510
mov rax, qword [rsi + 0x58]
mov rdx, qword [rax + 0x10]
mov qword [rsi + 0x30], rdx
mov eax, dword [rax + 0x18]
add rax, rdx
mov qword [rsi + 0x38], rax
sub rax, rdi
setbe cl
cmp rdx, rdi
ja 0x1404a7705
test cl, cl
jne 0x1404a770f
mov qword [rsi + 0x30], rdi
movzx ecx, word [rdi]
rol cx, 8
movzx ecx, cx
cmp rax, rcx
cmovb rcx, rax
add rcx, rdi
mov qword [rsi + 0x38], rcx
mov rcx, rdi
mov rdx, rsi
call fcn.1404a7750
mov rax, qword [rsi + 0x20]
mov rcx, qword [rsi + 0x58]
mov rdx, qword [rcx + 0x10]
mov qword [rsi + 0x30], rdx
mov ecx, dword [rcx + 0x18]
add rcx, rdx
mov qword [rsi + 0x38], rcx
mov ecx, dword [rax + 0x58]
cmp ecx, 2
jb 0x1404a7638
mov rdx, qword [rax + 0x68]
lea r9d, [rcx - 1]
lea r8, [r9 - 1]
lea r9, [r9 + r9*4]
lea r9, [rdx + r9*4]
xor r10d, r10d
nop word cs:[rax + rax]
mov r11d, dword [r9 + 0x10]
mov dword [rsp + 0x30], r11d
movups xmm0, xmmword [r9]
movaps xmmword [rsp + 0x20], xmm0
mov r11d, dword [rdx + 0x10]
mov dword [r9 + 0x10], r11d
movups xmm0, xmmword [rdx]
movups xmmword [r9], xmm0
mov r11d, dword [rsp + 0x30]
mov dword [rdx + 0x10], r11d
movaps xmm0, xmmword [rsp + 0x20]
movups xmmword [rdx], xmm0
inc r10
mov r11d, r8d
add rdx, 0x14
dec r8
add r9, 0xffffffffffffffec
cmp r10, r11
jb 0x1404a75f0
cmp byte [rax + 0x53], 0
je 0x1404a7371
mov edx, dword [rax + 0x58]
cmp edx, ecx
cmovb ecx, edx
cmp ecx, 2
jb 0x1404a7371
mov rax, qword [rax + 0x78]
dec ecx
lea rdx, [rcx - 1]
lea rcx, [rcx + rcx*4]
lea rcx, [rax + rcx*4]
xor r8d, r8d
nop dword [rax + rax]
mov r9d, dword [rcx + 0x10]
mov dword [rsp + 0x30], r9d
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x20], xmm0
mov r9d, dword [rax + 0x10]
mov dword [rcx + 0x10], r9d
movups xmm0, xmmword [rax]
movups xmmword [rcx], xmm0
mov r9d, dword [rsp + 0x30]
mov dword [rax + 0x10], r9d
movaps xmm0, xmmword [rsp + 0x20]
movups xmmword [rax], xmm0
inc r8
mov r9d, edx
add rax, 0x14
dec rdx
add rcx, 0xffffffffffffffec
cmp r8, r9
jb 0x1404a7670
jmp 0x1404a7371
mov rax, qword [rsi + 0x58]
mov rdx, qword [rax + 0x10]
mov qword [rsi + 0x30], rdx
mov eax, dword [rax + 0x18]
add rax, rdx
mov qword [rsi + 0x38], rax
sub rax, rdi
setbe cl
cmp rdx, rdi
ja 0x1404a7718
test cl, cl
jne 0x1404a734c
mov qword [rsi + 0x30], rdi
movzx ecx, word [rdi]
rol cx, 8
movzx ecx, cx
cmp rax, rcx
cmovb rcx, rax
add rcx, rdi
mov qword [rsi + 0x38], rcx
jmp 0x1404a7350
mov cl, 1
test cl, cl
je 0x1404a7583
movups xmmword [r15], xmm6
jmp 0x1404a759f
mov cl, 1
test cl, cl
je 0x1404a76e4
jmp 0x1404a734c
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1405602f0
movaps xmm6, xmmword [rsp + 0x40]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret