Function at 0x1401507bc
Capabilities:
Encode data using add xor sub operations
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
lea rbp, [rsp - 0x80]
sub rsp, 0x180
mov esi, dword [rcx]
xorps xmm3, xmm3
movaps xmmword [rax - 0x18], xmm6
mov rbx, rdx
movaps xmmword [rax - 0x28], xmm7
xorps xmm1, xmm1
movaps xmmword [rax - 0x38], xmm8
mov edi, 0xc000
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movaps xmmword [rax - 0x78], xmm12
shr rsi, 8
movaps xmmword [rax - 0x88], xmm13
and esi, 0x1fffc0
movaps xmmword [rax - 0x98], xmm14
add rsi, rdx
movaps xmmword [rax - 0xa8], xmm15
movaps xmmword [rbp - 0x40], xmm3
movdqu xmm0, xmmword [rsi + 0x30]
lea rax, [rbp - 0x70]
movdqu xmm6, xmmword [rsi]
lea r9, [rsp + 0x50]
movdqu xmm7, xmmword [rsi + 0x10]
lea r8, [rsp + 0x60]
movdqu xmm9, xmmword [rsi + 0x20]
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x38], rax
lea rcx, [rbp - 0x80]
cvtdq2ps xmm12, xmm0
lea rax, [rbp - 0x50]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
cvtdq2ps xmm15, xmm6
cvtdq2ps xmm14, xmm7
cvtdq2ps xmm13, xmm9
movdqa xmmword [rbp - 0x30], xmm0
movss xmm0, dword [0x1403ccaac]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x60], xmm13
movaps xmmword [rsp + 0x70], xmm14
movaps xmmword [rbp - 0x80], xmm15
movdqa xmmword [rbp - 0x70], xmm1
movaps xmmword [rsp + 0x40], xmm3
call fcn.1401514dc
movss xmm0, dword [0x1403cca98]
lea rax, [rbp - 0x70]
movaps xmm8, xmmword [rbp - 0x40]
lea r9, [rsp + 0x70]
mov qword [rsp + 0x38], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x50]
movaps xmmword [rbp - 0x80], xmm8
mov qword [rsp + 0x30], rax
lea rdx, [rsp + 0x50]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm14
mov qword [rsp + 0x28], rax
lea rcx, [rsp + 0x40]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x60], xmm12
movaps xmmword [rsp + 0x50], xmm13
movaps xmmword [rsp + 0x40], xmm15
call fcn.140151308
movss xmm0, dword [0x1403ccab4]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x70]
lea rax, [rbp - 0x60]
movaps xmmword [rbp - 0x80], xmm8
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm13
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x60], xmm14
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm15
call fcn.1401513a4
movss xmm0, dword [0x1403ccab8]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x70]
lea rax, [rbp - 0x60]
movaps xmmword [rbp - 0x80], xmm8
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm14
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x60], xmm13
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm15
lea rcx, [rsp + 0x40]
call fcn.140151440
movdqa xmm11, xmmword [rbp - 0x70]
lea rax, [rbp - 0x70]
movaps xmm10, xmmword [rbp - 0x60]
lea r9, [rsp + 0x70]
addps xmm10, xmmword [rbp - 0x50]
mov qword [rsp + 0x38], rax
lea r8, [rsp + 0x60]
movdqa xmm0, xmm11
movaps xmmword [rsp + 0x70], xmm12
xorps xmm0, xmm6
movaps xmmword [rsp + 0x60], xmm13
lea rax, [rbp - 0x50]
movdqu xmmword [rsi], xmm0
movss xmm0, dword [0x1403ccac8]
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x40]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x50], xmm15
xorps xmm1, xmm1
mov qword [rsp + 0x28], rax
movaps xmm6, xmm8
movss dword [rsp + 0x20], xmm0
movdqa xmmword [rbp - 0x70], xmm1
movaps xmmword [rbp - 0x80], xmm6
movaps xmmword [rsp + 0x40], xmm14
call fcn.1401514dc
movss xmm0, dword [0x1403ccac0]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x70]
lea rax, [rbp - 0x50]
movaps xmmword [rbp - 0x80], xmm6
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm15
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x60], xmm12
movaps xmmword [rsp + 0x50], xmm13
movaps xmmword [rsp + 0x40], xmm14
call fcn.140151308
movss xmm0, dword [0x1403ccabc]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x70]
lea rax, [rbp - 0x60]
movaps xmmword [rbp - 0x80], xmm6
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm13
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x60], xmm15
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm14
call fcn.1401513a4
movss xmm0, dword [0x1403ccaa0]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x70]
lea rax, [rbp - 0x60]
movaps xmmword [rbp - 0x80], xmm6
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm15
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x60], xmm13
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm14
lea rcx, [rsp + 0x40]
call fcn.140151440
movdqa xmm0, xmmword [rbp - 0x70]
lea rax, [rbp - 0x70]
xorps xmm11, xmmword [rbp - 0x70]
lea r9, [rsp + 0x70]
movaps xmm8, xmmword [rbp - 0x60]
lea r8, [rsp + 0x60]
addps xmm8, xmmword [rbp - 0x50]
mov qword [rsp + 0x38], rax
lea rdx, [rsp + 0x50]
xorps xmm0, xmm7
movaps xmmword [rbp - 0x80], xmm6
lea rax, [rbp - 0x50]
movdqu xmmword [rsi + 0x10], xmm0
movss xmm0, dword [0x1403ccac4]
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x30], rax
xorps xmm7, xmm7
lea rax, [rbp - 0x80]
movdqa xmmword [rbp - 0x70], xmm7
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x70], xmm12
movaps xmmword [rsp + 0x60], xmm15
movaps xmmword [rsp + 0x50], xmm14
movaps xmmword [rsp + 0x40], xmm13
call fcn.1401514dc
movss xmm0, dword [0x1403cca94]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x70]
lea rax, [rbp - 0x50]
movaps xmmword [rbp - 0x80], xmm6
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm14
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x60], xmm12
movaps xmmword [rsp + 0x50], xmm15
movaps xmmword [rsp + 0x40], xmm13
call fcn.140151308
movss xmm0, dword [0x1403cca90]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x70]
lea rax, [rbp - 0x60]
movaps xmmword [rbp - 0x80], xmm6
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm15
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x60], xmm14
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm13
call fcn.1401513a4
movss xmm0, dword [0x1403cca9c]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x70]
lea rax, [rbp - 0x60]
movaps xmmword [rbp - 0x80], xmm6
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm14
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
movss dword [rsp + 0x20], xmm0
lea rcx, [rsp + 0x40]
movaps xmmword [rsp + 0x60], xmm15
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm13
call fcn.140151440
movdqa xmm0, xmmword [rbp - 0x70]
lea rax, [rbp - 0x70]
xorps xmm11, xmmword [rbp - 0x70]
lea r9, [rsp + 0x70]
movaps xmm6, xmmword [rbp - 0x60]
lea r8, [rsp + 0x60]
addps xmm6, xmmword [rbp - 0x50]
mov qword [rsp + 0x38], rax
lea rdx, [rsp + 0x50]
xorps xmm0, xmm9
movdqa xmmword [rbp - 0x70], xmm7
movaps xmm7, xmmword [rbp - 0x40]
lea rax, [rbp - 0x50]
mov qword [rsp + 0x30], rax
lea rcx, [rsp + 0x40]
lea rax, [rbp - 0x80]
movdqu xmmword [rsi + 0x20], xmm0
movss xmm0, dword [0x1403ccaa4]
mov qword [rsp + 0x28], rax
movss dword [rsp + 0x20], xmm0
movaps xmmword [rbp - 0x80], xmm7
movaps xmmword [rsp + 0x70], xmm15
movaps xmmword [rsp + 0x60], xmm13
movaps xmmword [rsp + 0x50], xmm14
movaps xmmword [rsp + 0x40], xmm12
call fcn.1401514dc
movss xmm0, dword [0x1403ccab0]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x70]
lea rax, [rbp - 0x50]
movaps xmmword [rbp - 0x80], xmm7
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm14
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x60], xmm15
movaps xmmword [rsp + 0x50], xmm13
movaps xmmword [rsp + 0x40], xmm12
call fcn.140151308
movss xmm0, dword [0x1403ccaa8]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x70]
lea rax, [rbp - 0x60]
movaps xmmword [rbp - 0x80], xmm7
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm13
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x60], xmm14
movaps xmmword [rsp + 0x50], xmm15
movaps xmmword [rsp + 0x40], xmm12
call fcn.1401513a4
movss xmm0, dword [0x1403ccacc]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x38], rax
lea r9, [rsp + 0x70]
lea rax, [rbp - 0x60]
movaps xmmword [rbp - 0x80], xmm7
mov qword [rsp + 0x30], rax
lea r8, [rsp + 0x60]
lea rax, [rbp - 0x80]
movaps xmmword [rsp + 0x70], xmm14
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
movss dword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x60], xmm13
movaps xmmword [rsp + 0x50], xmm15
movaps xmmword [rsp + 0x40], xmm12
call fcn.140151440
movaps xmm3, xmmword [rbp - 0x60]
addps xmm8, xmm10
addps xmm3, xmmword [rbp - 0x50]
movdqa xmm0, xmmword [rbp - 0x70]
xorps xmm0, xmmword [rbp - 0x30]
xorps xmm11, xmmword [rbp - 0x70]
movdqu xmmword [rsi + 0x30], xmm0
movaps xmm0, xmmword [0x1403ccae0]
addps xmm3, xmm6
addps xmm3, xmm8
andps xmm3, xmmword [0x1403ccaf0]
mulps xmm0, xmm3
divps xmm3, xmmword [0x1403ccad0]
cvttps2dq xmm1, xmm0
movaps xmmword [rbp - 0x40], xmm3
xorps xmm1, xmm11
pshufd xmm2, xmm1, 0x1b
xorps xmm2, xmm1
xorps xmm1, xmm1
pshufd xmm0, xmm2, 0x11
xorps xmm0, xmm2
movd esi, xmm0
and esi, 0x1fffc0
add rsi, rbx
sub rdi, 1
jne 0x140150832
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop rbp
ret