Function at 0x1805601f0
Capabilities:
Encode data using xor
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
cmp rdx, 2
jb 0x180560631
mov rsi, rdx
lea rax, [rdx + 0x10]
cmp rax, r9
ja 0x180560645
mov r14, r8
mov r12, rcx
mov rbp, rsi
shr rbp, 1
mov rax, rbp
shl rax, 5
lea r15, [rcx + rax]
mov qword [rsp + 0x30], rax
lea rbx, [r8 + rax]
cmp rsi, 7
jbe 0x180560261
mov rcx, r12
mov rdx, r14
call fcn.18055f3a0
mov rcx, r15
mov rdx, rbx
call fcn.18055f3a0
mov r8d, 4
jmp 0x18056028b
movups xmm0, xmmword [r12]
movups xmm1, xmmword [r12 + 0x10]
movups xmmword [r14 + 0x10], xmm1
movups xmmword [r14], xmm0
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rbx + 0x10], xmm1
movups xmmword [rbx], xmm0
mov r8d, 1
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], rbp
mov qword [rsp + 0xa0], 2
mov rax, rsi
mov qword [rsp + 0x28], rsi
sub rsi, rbp
mov rax, r8
shl rax, 5
mov qword [rsp + 0x38], rax
mov eax, 2
xor ecx, ecx
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], rsi
jmp 0x180560327
mov rcx, qword [rsp + 0x98]
mov rax, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x68]
mov r14, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov r8, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
cmp rax, rcx
je 0x1805604bf
lea rdx, [rcx + 1]
mov qword [rsp + 0x98], rdx
mov r13, qword [rsp + rcx*8 + 0x88]
test r13, r13
mov r9, rsi
cmove r9, rbp
mov rcx, rdx
mov qword [rsp + 0x80], r9
cmp r8, r9
jae 0x18056031e
shl r13, 5
lea rax, [r12 + r13]
mov qword [rsp + 0x78], rax
add r13, r14
mov rdi, qword [rsp + 0x38]
mov rsi, r8
jmp 0x1805603b2
mov r12, r13
mov rax, qword [rsp + 0x70]
mov qword [r12], rax
mov qword [r12 + 8], r15
mov qword [r12 + 0x10], r14
mov byte [r12 + 0x18], bl
mov eax, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x23]
mov dword [r12 + 0x19], eax
mov dword [r12 + 0x1c], ecx
inc rsi
add rdi, 0x20
cmp rsi, qword [rsp + 0x80]
je 0x1805602f0
mov r12, rsi
shl r12, 5
mov rax, qword [rsp + 0x78]
movups xmm0, xmmword [rax + r12]
movups xmm1, xmmword [rax + r12 + 0x10]
movups xmmword [r13 + r12], xmm0
movups xmmword [r13 + r12 + 0x10], xmm1
mov r15, qword [r13 + r12 + 8]
mov r14, qword [r13 + r12 + 0x10]
mov rdx, qword [r13 + r12 - 0x18]
mov r8, qword [r13 + r12 - 0x10]
mov rbp, r14
sub rbp, r8
cmovb r8, r14
mov rcx, r15
call fcn.1806a7e40
cdqe
test eax, eax
cmovne rbp, rax
movzx ebx, byte [r13 + r12 + 0x18]
mov eax, ebx
sub al, byte [r13 + r12 - 8]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test rbp, rbp
sets al
cmovne ecx, eax
cmp cl, 1
jne 0x18056039d
add r12, r13
mov rax, qword [r12]
mov qword [rsp + 0x70], rax
mov eax, dword [r12 + 0x1c]
mov dword [rsp + 0x23], eax
mov eax, dword [r12 + 0x19]
mov dword [rsp + 0x20], eax
mov r12, rdi
nop dword [rax]
movups xmm0, xmmword [r13 + r12 - 0x20]
movups xmm1, xmmword [r13 + r12 - 0x10]
movups xmmword [r13 + r12 + 0x10], xmm1
movups xmmword [r13 + r12], xmm0
cmp r12, 0x20
je 0x180560370
mov rdx, qword [r13 + r12 - 0x38]
mov r8, qword [r13 + r12 - 0x30]
mov rbp, r14
sub rbp, r8
cmovb r8, r14
mov rcx, r15
call fcn.1806a7e40
cdqe
test eax, eax
cmovne rbp, rax
mov eax, ebx
sub al, byte [r13 + r12 - 0x28]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test rbp, rbp
sets al
cmovne ecx, eax
add r12, 0xffffffffffffffe0
test cl, cl
jne 0x180560450
add r12, r13
jmp 0x180560373
mov rax, qword [rsp + 0x30]
lea r13, [rax + r14]
add r13, 0xffffffffffffffe0
mov rax, qword [rsp + 0x28]
shl rax, 5
lea r15, [r14 + rax]
add r15, 0xffffffffffffffe0
lea rdi, [r12 + rax]
add rdi, 0xffffffffffffffe0
cmp rbp, 1
adc rbp, 0
nop dword [rax]
mov rsi, r14
mov rcx, qword [rbx + 8]
mov rax, qword [rbx + 0x10]
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
mov r14, rax
sub r14, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne r14, rax
movzx eax, byte [rbx + 0x18]
sub al, byte [rsi + 0x18]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test r14, r14
sets al
cmovne ecx, eax
test cl, cl
mov rax, rsi
cmovne rax, rbx
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
movzx eax, cl
xor cl, 1
shl rax, 5
add rax, rbx
mov rbx, rax
movzx r14d, cl
shl r14, 5
add r14, rsi
add r12, 0x20
mov rcx, qword [r15 + 8]
mov rax, qword [r15 + 0x10]
mov rdx, qword [r13 + 8]
mov r8, qword [r13 + 0x10]
mov rsi, rax
sub rsi, r8
cmovb r8, rax
call fcn.1806a7e40
cdqe
test eax, eax
cmovne rsi, rax
movzx eax, byte [r15 + 0x18]
sub al, byte [r13 + 0x18]
xor ecx, ecx
cmp al, 0xff
sete cl
xor eax, eax
test rsi, rsi
sets al
cmovne ecx, eax
test cl, cl
mov rax, r15
cmovne rax, r13
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
movzx eax, cl
shl rax, 5
add r15, rax
add r15, 0xffffffffffffffe0
sub r13, rax
add rdi, 0xffffffffffffffe0
dec rbp
jne 0x1805604f0
add r13, 0x20
test byte [rsp + 0x28], 1
je 0x180560623
xor eax, eax
xor ecx, ecx
cmp r14, r13
setae al
setb cl
mov rdx, rbx
cmovb rdx, r14
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [r12 + 0x10], xmm1
movups xmmword [r12], xmm0
shl rcx, 5
add r14, rcx
shl rax, 5
add rbx, rax
cmp r14, r13
jne 0x180560645
add r15, 0x20
cmp rbx, r15
jne 0x180560645
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2