Function at 0x14005c820
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0xf0
movapd xmmword [rsp + 0xe0], xmm15
movdqa xmmword [rsp + 0xd0], xmm14
movapd xmmword [rsp + 0xc0], xmm13
movdqa xmmword [rsp + 0xb0], xmm12
movdqa xmmword [rsp + 0xa0], xmm11
movdqa xmmword [rsp + 0x90], xmm10
movdqa xmmword [rsp + 0x80], xmm9
movapd xmmword [rsp + 0x70], xmm8
movapd xmmword [rsp + 0x60], xmm7
movapd xmmword [rsp + 0x50], xmm6
mov rbx, rcx
mov ecx, 0x20
call fcn.1400914ac
mov rsi, rax
mov r15, qword [rbx + 0x28]
pxor xmm0, xmm0
movdqu xmmword [rax], xmm0
mov qword [rax + 0x10], 0
inc r15
je 0x14005c8ee
mov rax, r15
shr rax, 0x3e
jne 0x14005cc94
lea r14, [r15*4]
mov rcx, r14
call fcn.1400914ac
mov rdi, rax
mov qword [rsi], rax
lea r15, [rax + r15*4]
mov qword [rsi + 0x10], r15
mov rcx, rax
xor edx, edx
mov r8, r14
call fcn.1400c39c0
mov qword [rsi + 8], r15
jmp 0x14005c8f3
xor edi, edi
xor r15d, r15d
mov dword [rsi + 0x1c], 0
mov rax, r15
sub rax, rdi
mov rcx, rax
sar rcx, 2
lea rdx, [rcx - 1]
cmp rdx, 2
jb 0x14005cb85
cvtsi2sd xmm5, dword [rbx + 0x1c]
xorps xmm6, xmm6
cvtsi2sd xmm6, dword [rbx + 0x20]
lea r10, [rcx - 3]
movq xmm7, r10
punpckldq xmm7, xmmword [0x1400f5910]
subpd xmm7, xmmword [0x1400f5920]
haddpd xmm7, xmm7
cmp rcx, 1
mov r8, rcx
adc r8, 0
lea r9, [r8 - 1]
cmp r9, r10
cmovb r10, r9
cmp r10, 3
jbe 0x14005cc62
inc r10
mov r9d, r10d
and r9d, 3
mov r11d, 4
cmovne r11, r9
sub r10, r11
lea r9, [r10 + 1]
movq xmm0, rdx
pshufd xmm3, xmm0, 0x44
movapd xmmword [rsp + 0x40], xmm5
movddup xmm4, xmm5
movapd xmmword [rsp + 0x30], xmm6
movddup xmm5, xmm6
movapd xmmword [rsp + 0x20], xmm7
movddup xmm6, xmm7
movdqa xmm14, xmmword [0x1400fc8c0]
movdqa xmm2, xmmword [0x1400fc8d0]
xor r11d, r11d
pcmpeqd xmm9, xmm9
movdqa xmm10, xmmword [0x1400fc8e0]
movdqa xmm11, xmmword [0x1400fc8f0]
movdqa xmm12, xmmword [0x1400fc900]
movapd xmm13, xmmword [0x1400fc910]
movdqa xmm7, xmm14
pxor xmm7, xmm9
movdqa xmm8, xmm2
pxor xmm8, xmm9
paddq xmm8, xmm3
paddq xmm7, xmm3
movdqa xmm0, xmm7
pand xmm0, xmm10
psrlq xmm7, 0x20
por xmm0, xmm11
por xmm7, xmm12
subpd xmm7, xmm13
movdqa xmm1, xmm2
addpd xmm7, xmm0
paddq xmm1, xmm9
movdqa xmm0, xmm14
paddq xmm0, xmm9
movdqa xmm15, xmm0
pand xmm15, xmm10
psrlq xmm0, 0x20
por xmm0, xmm12
por xmm15, xmm11
subpd xmm0, xmm13
addpd xmm0, xmm15
movdqa xmm15, xmm1
pand xmm15, xmm10
por xmm15, xmm11
psrlq xmm1, 0x20
por xmm1, xmm12
subpd xmm1, xmm13
addpd xmm1, xmm15
movdqa xmm15, xmm8
pand xmm15, xmm10
por xmm15, xmm11
psrlq xmm8, 0x20
por xmm8, xmm12
subpd xmm8, xmm13
addpd xmm8, xmm15
mulpd xmm8, xmm4
mulpd xmm1, xmm5
addpd xmm1, xmm8
mulpd xmm7, xmm4
mulpd xmm0, xmm5
addpd xmm0, xmm7
divpd xmm1, xmm6
divpd xmm0, xmm6
movapd xmm7, xmmword [0x1400fc920]
addpd xmm0, xmm7
addpd xmm1, xmm7
cvttpd2dq xmm1, xmm1
cvttpd2dq xmm0, xmm0
unpcklpd xmm1, xmm0
movupd xmmword [rdi + r11*4 + 4], xmm1
add r11, 4
movdqa xmm0, xmmword [0x1400fc930]
paddq xmm2, xmm0
paddq xmm14, xmm0
cmp r10, r11
jne 0x14005c9df
movapd xmm5, xmmword [rsp + 0x40]
movapd xmm6, xmmword [rsp + 0x30]
movapd xmm7, xmmword [rsp + 0x20]
sub rcx, r9
add rcx, 0xfffffffffffffffe
movdqa xmm0, xmmword [0x1400f5910]
movapd xmm1, xmmword [0x1400f5920]
movsd xmm2, qword [0x1400fc940]
cmp r8, r9
je 0x14005cc8b
movq xmm3, rcx
punpckldq xmm3, xmm0
subpd xmm3, xmm1
haddpd xmm3, xmm3
lea r10, [r9 - 1]
movq xmm4, r10
punpckldq xmm4, xmm0
subpd xmm4, xmm1
haddpd xmm4, xmm4
mulsd xmm3, xmm5
mulsd xmm4, xmm6
addsd xmm4, xmm3
divsd xmm4, xmm7
addsd xmm4, xmm2
cvttsd2si r10d, xmm4
mov dword [rdi + r9*4], r10d
dec rcx
inc r9
cmp r9, rdx
jne 0x14005cb2e
cmp r15, rdi
je 0x14005cc8e
mov dword [rdi + rax - 4], 0x7fffffff
test rax, rax
js 0x14005cc91
mov rcx, rax
shr rcx, 2
test al, 1
jne 0x14005cc6d
mov rax, rdi
lea rdx, [r15 - 1]
cmp rdx, rdi
je 0x14005cbfe
lea rdx, [0x1400fd9a0]
nop word cs:[rax + rax]
movzx r8d, byte [rax]
movzx r9d, cl
xor r9d, r8d
shr ecx, 8
xor ecx, dword [rdx + r9*4]
movzx r8d, byte [rax + 1]
movzx r9d, cl
xor r9d, r8d
shr ecx, 8
xor ecx, dword [rdx + r9*4]
add rax, 2
cmp rax, r15
jne 0x14005cbd0
mov dword [rsi + 0x18], ecx
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x60]
movaps xmm8, xmmword [rsp + 0x70]
movaps xmm9, xmmword [rsp + 0x80]
movaps xmm10, xmmword [rsp + 0x90]
movaps xmm11, xmmword [rsp + 0xa0]
movaps xmm12, xmmword [rsp + 0xb0]
movaps xmm13, xmmword [rsp + 0xc0]
movaps xmm14, xmmword [rsp + 0xd0]
movaps xmm15, xmmword [rsp + 0xe0]
add rsp, 0xf0
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov r9d, 1
jmp 0x14005cb0f
movzx eax, byte [rdi]
movzx edx, cl
xor edx, eax
lea rax, [0x1400fd9a0]
shr ecx, 8
xor ecx, dword [rax + rdx*4]
lea rax, [rdi + 1]
jmp 0x14005cbb1
int3
int3
int3
int3