Function at 0x1402bf3b0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov dword [rax + 0x20], r9d
mov dword [rax + 0x18], r8d
mov qword [rax + 8], rcx
push rbx
push rbp
push rdi
push r15
sub rsp, 0xb8
mov r11d, dword [rcx + 0x24]
mov r15, rdx
imul r11d, dword [rcx + 0x20]
xor r10d, r10d
mov rbp, qword [rcx]
xor edx, edx
mov qword [rax - 0x30], r12
mov qword [rax - 0x38], r13
movaps xmmword [rax - 0x78], xmm8
xorps xmm8, xmm8
mov dword [rax + 0x10], 0
test r11d, r11d
je 0x1402bf4d0
cmp r11d, 8
jb 0x1402bf476
cmp dword [0x1404b0008], 2
jl 0x1402bf476
mov r8, qword [rcx + 0x10]
mov r9d, r11d
and r9d, 0xfffffff8
xorps xmm2, xmm2
xorps xmm3, xmm3
movdqu xmm0, xmmword [r8 + rdx*4]
lea eax, [rdx + 4]
add edx, 8
pabsd xmm1, xmm0
pmaxsd xmm2, xmm1
movdqu xmm0, xmmword [r8 + rax*4]
pabsd xmm1, xmm0
pmaxsd xmm3, xmm1
cmp edx, r9d
jb 0x1402bf420
pmaxsd xmm2, xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
pmaxsd xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
pmaxsd xmm2, xmm0
movd r10d, xmm2
cmp edx, r11d
jae 0x1402bf4ad
mov r9, qword [rcx + 0x10]
sub r11d, edx
mov r8d, r11d
lea rcx, [rdx*4]
nop dword [rax + rax]
mov eax, dword [rcx + r9]
lea rcx, [rcx + 4]
cdq
xor eax, edx
sub eax, edx
cmp r10d, eax
cmovg eax, r10d
mov r10d, eax
sub r8, 1
jne 0x1402bf490
test r10d, r10d
je 0x1402bf4d0
xor eax, eax
cmp r10d, 1
jle 0x1402bf4cb
nop word [rax + rax]
shr r10d, 1
inc eax
cmp r10d, 1
ja 0x1402bf4c0
lea ebx, [rax - 5]
jmp 0x1402bf4d2
xor ebx, ebx
mov qword [rsp + 0xb0], rsi
mov rcx, rbp
mov qword [rsp + 0x98], r14
mov edi, 2
mov dword [r15 + 0x28], ebx
call fcn.1402cef20
lea r9d, [rdi + 0x2c]
xor r8d, r8d
lea edx, [rdi + 0x10]
mov rcx, rbp
call fcn.1402cefa0
lea r9d, [rdi + 1]
xor r8d, r8d
lea edx, [rdi + 0xf]
mov rcx, rbp
call fcn.1402cefa0
lea r9d, [rdi + 2]
xor r8d, r8d
xor edx, edx
mov rcx, rbp
call fcn.1402cefa0
mov rdx, qword [r15]
mov rcx, rbp
call fcn.1402cefd0
mov r12d, dword [rsp + 0x118]
xor r13d, r13d
sub ebx, 1
js 0x1402bf7f5
mov r8d, dword [rsp + 0x100]
mov ecx, ebx
movaps xmmword [rsp + 0x80], xmm6
mov eax, 1
rol eax, cl
mov dword [rsp + 0x118], eax
mov eax, r12d
and eax, 4
movaps xmmword [rsp + 0x70], xmm7
movsd xmm7, qword [0x140472200]
mov dword [rsp + 0x34], eax
mov eax, r12d
movaps xmmword [rsp + 0x50], xmm9
and eax, edi
movsd xmm9, qword [rsp + 0x110]
movaps xmmword [rsp + 0x40], xmm10
movsd xmm10, qword [0x1404432c8]
mov dword [rsp + 0x38], eax
nop word [rax + rax]
mov eax, dword [r15 + 0x28]
lea rsi, [r13*2]
mov r14, qword [r15 + 0x10]
add rsi, r13
sub eax, 4
mov dword [rsp + 0x30], 3
cmp ebx, eax
jge 0x1402bf5e1
cmp edi, 2
jae 0x1402bf5e1
test r12b, 1
je 0x1402bf5e1
mov cl, 1
jmp 0x1402bf5e3
xor cl, cl
mov eax, edi
test edi, edi
je 0x1402bf64d
sub eax, 1
je 0x1402bf62b
cmp eax, 1
jne 0x1402bf67d
mov r8d, dword [rsp + 0xf0]
lea r9, [rsp + 0xe8]
mov rcx, qword [rsp + 0xe0]
mov edx, ebx
mov dword [rsp + 0x20], r12d
call fcn.1402be9a0
test r12b, 0x20
je 0x1402bf675
mov rcx, rbp
call fcn.1402cf470
jmp 0x1402bf675
movzx r9d, cl
mov dword [rsp + 0x20], r12d
mov rcx, qword [rsp + 0xe0]
lea r8, [rsp + 0xe8]
mov edx, ebx
call fcn.1402bee90
jmp 0x1402bf675
mov r8d, dword [rsp + 0xf0]
lea r9, [rsp + 0xe8]
mov dword [rsp + 0x28], r12d
mov edx, ebx
mov byte [rsp + 0x20], cl
mov rcx, qword [rsp + 0xe0]
call fcn.1402bf0a0
mov r8d, dword [rsp + 0x100]
mov rcx, qword [rsp + 0x130]
movaps xmm6, xmm7
test rcx, rcx
je 0x1402bf699
mov eax, dword [rsp + 0xf8]
movsd xmm6, qword [rcx + rax*8]
cmp dword [rsp + 0x108], 1
mov ecx, r8d
mov edx, dword [rsp + 0xf0]
jne 0x1402bf6b4
call fcn.14024a150
jmp 0x1402bf6b9
call fcn.14024aa30
cmp dword [rsp + 0x34], 0
xorps xmm1, xmm1
cvtsi2sd xmm1, dword [rsp + 0xe8]
mov ecx, dword [rsp + 0x118]
mov rax, qword [rsp + 0x128]
movaps xmm2, xmm0
xorps xmm0, xmm0
mulsd xmm2, xmm6
cvtsi2sd xmm0, ecx
mulsd xmm2, xmm9
mulsd xmm2, xmm0
mulsd xmm1, xmm2
mulsd xmm1, xmm10
mulsd xmm1, xmm2
addsd xmm8, xmm1
addsd xmm1, qword [rax + 0x28]
movsd qword [rax + 0x28], xmm1
je 0x1402bf736
cmp edi, 2
jne 0x1402bf717
test ebx, ebx
jle 0x1402bf736
mov rcx, rbp
call fcn.1402cf0b0
or dword [r14 + rsi*8 + 0x14], 1
mov ecx, dword [rsp + 0x118]
mov dword [rsp + 0x30], 1
jmp 0x1402bf75a
mov eax, dword [r15 + 0x28]
add eax, 0xfffffffc
cmp ebx, eax
jge 0x1402bf747
test edi, edi
jne 0x1402bf74e
jmp 0x1402bf754
jne 0x1402bf754
cmp edi, 2
jne 0x1402bf754
test r12b, 1
jne 0x1402bf717
and dword [r14 + rsi*8 + 0x14], 0xfffffffe
mov eax, dword [r14 + rsi*8 + 0x14]
inc edi
cmp edi, 3
jne 0x1402bf773
xor edi, edi
dec ebx
ror ecx, 1
mov dword [rsp + 0x118], ecx
test al, 1
je 0x1402bf7a3
test ebx, ebx
jle 0x1402bf7a3
mov eax, dword [r15 + 0x28]
sub eax, 4
cmp ebx, eax
jge 0x1402bf79b
cmp edi, 2
jae 0x1402bf79b
test r12b, 1
je 0x1402bf79b
mov rcx, rbp
call fcn.1402cf110
jmp 0x1402bf7a3
mov rcx, rbp
call fcn.1402cf340
mov rcx, rbp
movsd qword [r14 + rsi*8 + 8], xmm8
call fcn.1402cef10
add eax, dword [rsp + 0x30]
cmp dword [rsp + 0x38], 0
mov dword [r14 + rsi*8], eax
je 0x1402bf7c9
mov rcx, rbp
call fcn.1402cf1d0
mov r8d, dword [rsp + 0x100]
inc r13d
test ebx, ebx
jns 0x1402bf5b0
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x60]
test r12b, 0x10
je 0x1402bf80b
mov rcx, rbp
call fcn.1402cf390
jmp 0x1402bf819
test r12b, 1
jne 0x1402bf819
mov rcx, rbp
call fcn.1402cf0b0
mov r12, qword [rsp + 0xa8]
xor edi, edi
test r13d, r13d
mov dword [r15 + 0x38], r13d
mov r13, qword [rsp + 0xa0]
je 0x1402bf8a2
nop dword [rax]
nop dword [rax + rax]
mov r14, qword [r15 + 0x10]
lea rsi, [rdi + rdi*2]
mov rcx, rbp
mov ebx, dword [r14 + rsi*8]
call fcn.1402cef10
cmp ebx, eax
jbe 0x1402bf866
mov rcx, rbp
call fcn.1402cef10
mov ebx, eax
mov dword [r14 + rsi*8], eax
cmp ebx, 1
jbe 0x1402bf87d
mov rcx, qword [r15]
lea eax, [rbx - 1]
cmp byte [rax + rcx], 0xff
jne 0x1402bf87d
mov dword [r14 + rsi*8], eax
mov ebx, eax
test edi, edi
jne 0x1402bf885
xor eax, eax
jmp 0x1402bf893
lea eax, [rdi - 1]
lea rdx, [rax + rax*2]
mov rax, qword [r15 + 0x10]
mov eax, dword [rax + rdx*8]
sub ebx, eax
inc edi
mov dword [r14 + rsi*8 + 0x10], ebx
cmp edi, dword [r15 + 0x38]
jb 0x1402bf840
mov r14, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xb0]
add rsp, 0xb8
pop r15
pop rdi
pop rbp
pop rbx
ret