Function at 0x18032c720
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 0x18032cb61
mov rsi, rdx
lea rax, [rdx + 0x10]
cmp rax, r9
ja 0x18032cb75
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 0x18032c791
mov rcx, r12
mov rdx, r14
call fcn.18032b8d0
mov rcx, r15
mov rdx, rbx
call fcn.18032b8d0
mov r8d, 4
jmp 0x18032c7bb
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 0x18032c857
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 0x18032c9ef
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 0x18032c84e
shl r13, 5
lea rax, [r12 + r13]
mov qword [rsp + 0x78], rax
add r13, r14
mov rdi, qword [rsp + 0x38]
mov rsi, r8
jmp 0x18032c8e2
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 0x18032c820
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.180469550
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 0x18032c8cd
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 0x18032c8a0
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.180469550
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 0x18032c980
add r12, r13
jmp 0x18032c8a3
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.180469550
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.180469550
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 0x18032ca20
add r13, 0x20
test byte [rsp + 0x28], 1
je 0x18032cb53
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 0x18032cb75
add r15, 0x20
cmp rbx, r15
jne 0x18032cb75
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2