Function at 0x18003c2e0
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0xc8
movdqa xmmword [rsp + 0xb0], xmm15
movapd xmmword [rsp + 0xa0], xmm14
movaps xmmword [rsp + 0x90], xmm13
movdqa xmmword [rsp + 0x80], xmm12
movdqa xmmword [rsp + 0x70], xmm11
movapd xmmword [rsp + 0x60], xmm10
movdqa xmmword [rsp + 0x50], xmm9
movdqa xmmword [rsp + 0x40], xmm8
movdqa xmmword [rsp + 0x30], xmm7
movaps xmmword [rsp + 0x20], xmm6
mov r14, r8
mov rsi, rdx
movapd xmm6, xmm0
mov rdi, qword [r9]
test rdi, rdi
je 0x18003c456
mov rbx, qword [r9 + 8]
mov rcx, rdi
mov rdx, rbx
call fcn.18002ff30
cmp r14, rbx
cmovb rbx, r14
test rbx, rbx
je 0x18003c7f4
cmp rbx, 1
je 0x18003c38f
lea rax, [rdi + rbx*8]
cmp rax, rsi
jbe 0x18003c6a6
lea rax, [rsi + rbx*8]
cmp rdi, rax
jae 0x18003c6a6
xor eax, eax
movabs rcx, 0x8000000000000000
movabs rdx, 0x7fffffffffffffff
movabs r8, 0x4320000000000000
movdqa xmm0, xmmword [0x180083740]
movapd xmm1, xmmword [0x180083750]
movapd xmm2, xmmword [0x180083790]
jmp 0x18003c402
xorpd xmm3, xmm2
mulsd xmm3, xmm6
movq r9, xmm3
mov r10, r9
sar r10, 0x3f
or r10, rcx
xor r10, r9
add r10, qword [rdi + rax*8]
mov qword [rsi + rax*8], r10
lea r9, [rax + 1]
mov rax, r9
cmp rbx, r9
je 0x18003c7f4
mov r9, qword [rsi + rax*8]
mov r11, r9
xor r11, rcx
mov r10, r9
xor r10, rdx
test r9, r9
cmovs r10, r11
mov r11, r10
shr r11, 0x35
movq xmm4, r10
punpckldq xmm4, xmm0
subpd xmm4, xmm1
je 0x18003c440
add r10, r8
movq xmm3, r10
test r9, r9
js 0x18003c3d4
jmp 0x18003c3d0
movapd xmm3, xmm4
unpckhpd xmm3, xmm4
addsd xmm3, xmm4
test r9, r9
js 0x18003c3d4
jmp 0x18003c3d0
test r14, r14
je 0x18003c7f4
movabs rax, 0x8000000000000000
mov rcx, qword [r9 + 8]
xor rcx, rax
lea r9, [r14 - 1]
movabs r8, 0x1fffffffffffffff
mov rdx, rsi
and r8, r9
je 0x18003c5e1
inc r8
mov r9, r8
and r9, 0xfffffffffffffffe
lea rdx, [rsi + r9*8]
movapd xmm0, xmm6
unpcklpd xmm0, xmm6
movq xmm1, rcx
pshufd xmm1, xmm1, 0x44
xor r10d, r10d
movdqa xmm3, xmmword [0x180083790]
movdqa xmm5, xmmword [0x1800837a0]
movdqa xmm7, xmmword [0x1800855b0]
movdqa xmm8, xmmword [0x180083850]
movdqa xmm9, xmmword [0x180083860]
movdqa xmm10, xmmword [0x180083870]
movapd xmm11, xmmword [0x180083880]
movdqa xmm12, xmmword [0x1800855c0]
nop word cs:[rax + rax]
movdqu xmm13, xmmword [rsi + r10*8]
pshufd xmm2, xmm13, 0xf5
pcmpgtd xmm2, xmmword [0x1800855d0]
movdqa xmm14, xmm13
pxor xmm14, xmm3
pxor xmm13, xmmword [0x1800837b0]
movdqa xmm15, xmm2
pandn xmm15, xmm14
pand xmm13, xmm2
por xmm13, xmm15
pshufd xmm4, xmm13, 0xf5
pxor xmm4, xmm5
movdqa xmm14, xmm7
pcmpgtd xmm14, xmm4
movdqa xmm4, xmm13
pand xmm4, xmm8
por xmm4, xmm9
movdqa xmm15, xmm13
psrlq xmm15, 0x20
por xmm15, xmm10
subpd xmm15, xmm11
addpd xmm15, xmm4
paddq xmm13, xmm12
andpd xmm15, xmm14
pandn xmm14, xmm13
por xmm14, xmm15
movdqa xmm4, xmm2
pandn xmm4, xmm14
pxor xmm14, xmm3
pand xmm14, xmm2
por xmm14, xmm4
mulpd xmm14, xmm0
movapd xmm2, xmm14
shufps xmm2, xmm14, 0xf5
psrad xmm2, 0x1f
por xmm2, xmm3
pxor xmm2, xmm14
paddq xmm2, xmm1
movdqu xmmword [rsi + r10*8], xmm2
add r10, 2
cmp r9, r10
jne 0x18003c500
cmp r8, r9
je 0x18003c7f4
lea r8, [rsi + r14*8]
movabs r9, 0x7fffffffffffffff
movabs r10, 0x4320000000000000
movdqa xmm0, xmmword [0x180083740]
movapd xmm1, xmmword [0x180083750]
movapd xmm2, xmmword [0x180083790]
jmp 0x18003c64d
xorpd xmm3, xmm2
mulsd xmm3, xmm6
movq r11, xmm3
mov rsi, r11
sar rsi, 0x3f
or rsi, rax
xor rsi, r11
add rsi, rcx
mov qword [rdx], rsi
add rdx, 8
cmp rdx, r8
je 0x18003c7f4
mov r11, qword [rdx]
mov rdi, r11
xor rdi, rax
mov rsi, r11
xor rsi, r9
test r11, r11
cmovs rsi, rdi
mov rdi, rsi
shr rdi, 0x35
movq xmm4, rsi
punpckldq xmm4, xmm0
subpd xmm4, xmm1
je 0x18003c690
add rsi, r10
movq xmm3, rsi
test r11, r11
js 0x18003c624
jmp 0x18003c620
movapd xmm3, xmm4
unpckhpd xmm3, xmm4
addsd xmm3, xmm4
test r11, r11
js 0x18003c624
jmp 0x18003c620
mov rax, rbx
and rax, 0xfffffffffffffffe
movapd xmm0, xmm6
unpcklpd xmm0, xmm6
xor ecx, ecx
movdqa xmm2, xmmword [0x180083790]
movdqa xmm3, xmmword [0x1800837b0]
movdqa xmm4, xmmword [0x1800837a0]
movdqa xmm5, xmmword [0x1800855b0]
movdqa xmm7, xmmword [0x180083850]
movdqa xmm8, xmmword [0x180083860]
movdqa xmm9, xmmword [0x180083870]
movapd xmm10, xmmword [0x180083880]
movdqa xmm11, xmmword [0x1800855c0]
nop word cs:[rax + rax]
movdqu xmm15, xmmword [rsi + rcx*8]
pshufd xmm12, xmm15, 0xf5
pcmpgtd xmm12, xmmword [0x1800855d0]
movdqa xmm13, xmm15
pxor xmm13, xmm2
pxor xmm15, xmm3
movdqa xmm14, xmm12
pandn xmm14, xmm13
pand xmm15, xmm12
por xmm15, xmm14
pshufd xmm1, xmm15, 0xf5
pxor xmm1, xmm4
movdqa xmm13, xmm5
pcmpgtd xmm13, xmm1
movdqa xmm1, xmm15
pand xmm1, xmm7
por xmm1, xmm8
movdqa xmm14, xmm15
psrlq xmm14, 0x20
por xmm14, xmm9
subpd xmm14, xmm10
addpd xmm14, xmm1
paddq xmm15, xmm11
andpd xmm14, xmm13
pandn xmm13, xmm15
por xmm13, xmm14
movdqa xmm1, xmm12
pandn xmm1, xmm13
pxor xmm13, xmm2
pand xmm13, xmm12
por xmm13, xmm1
mulpd xmm13, xmm0
movapd xmm1, xmm13
shufps xmm1, xmm13, 0xf5
psrad xmm1, 0x1f
por xmm1, xmm2
pxor xmm1, xmm13
movdqu xmm12, xmmword [rdi + rcx*8]
paddq xmm1, xmm12
movdqu xmmword [rsi + rcx*8], xmm1
add rcx, 2
cmp rax, rcx
jne 0x18003c710
cmp rbx, rax
jne 0x18003c391
movaps xmm6, xmmword [rsp + 0x20]
movaps xmm7, xmmword [rsp + 0x30]
movaps xmm8, xmmword [rsp + 0x40]
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm10, xmmword [rsp + 0x60]
movaps xmm11, xmmword [rsp + 0x70]
movaps xmm12, xmmword [rsp + 0x80]
movaps xmm13, xmmword [rsp + 0x90]
movaps xmm14, xmmword [rsp + 0xa0]
movaps xmm15, xmmword [rsp + 0xb0]
add rsp, 0xc8
pop rbx
pop rdi
pop rsi
pop r14
ret