Function at 0x180004020
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rdi
sub rsp, 0x4f0
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movaps xmmword [rax - 0x78], xmm12
movaps xmmword [rax - 0x88], xmm13
movaps xmmword [rax - 0x98], xmm14
movaps xmmword [rax - 0xa8], xmm15
mov rax, qword [0x180037040]
xor rax, rsp
mov qword [rsp + 0x440], rax
movsd xmm10, qword [0x180031ab8]
lea rax, [rsp + 0x40]
movd xmm1, r8d
movaps xmm0, xmm10
cvtdq2pd xmm1, xmm1
mov qword [rsp + 0x28], rcx
mov rbx, r9
mov ecx, 0x80
xor r8d, r8d
divsd xmm0, xmm1
cvtpd2ps xmm5, xmm0
movss dword [rsp + 0x20], xmm5
nop word [rax + rax]
mov qword [rax], r8
lea rax, [rax + 8]
sub rcx, 1
jne 0x1800040c0
cvttss2si edi, dword [rsp + 0x520]
lea rsi, [0x180000000]
movsd xmm13, qword [0x180031bf0]
xorps xmm11, xmm11
movsd xmm2, qword [0x180031a90]
movsd xmm3, qword [0x180031aa0]
movsd xmm14, qword [0x180031a20]
movsd xmm15, qword [0x180031a28]
movsd xmm4, qword [0x180031a38]
movd xmm12, edx
cvtdq2pd xmm12, xmm12
nop
xorps xmm1, xmm1
xorps xmm9, xmm9
cvtss2sd xmm9, xmm11
addss xmm11, xmm5
xorps xmm8, xmm8
movss xmm5, dword [rsp + 0x2c]
movaps xmm0, xmm9
mulsd xmm0, xmm2
xorps xmm6, xmm6
cvtps2pd xmm5, xmm5
cvttsd2si eax, xmm0
cvtss2sd xmm8, xmm11
mov edx, eax
and edx, 3
lea r8d, [rax - 1]
cvtsi2sd xmm1, eax
and r8d, 3
movaps xmm0, xmm8
mulsd xmm0, xmm2
movaps xmm2, xmm8
mulsd xmm1, xmm3
cvttsd2si ecx, xmm0
subsd xmm9, xmm1
xorps xmm1, xmm1
mov eax, ecx
and eax, 3
cvtsi2sd xmm1, ecx
movaps xmm7, xmm9
addsd xmm7, qword [rsi + rdx*8 + 0x31858]
addsd xmm9, qword [rsi + r8*8 + 0x317f8]
mulsd xmm1, xmm3
movss xmm3, dword [rsp + 0x28]
cvtps2pd xmm3, xmm3
subsd xmm2, xmm1
mulsd xmm7, xmm7
mulsd xmm9, xmm9
movaps xmm0, xmm2
xorps xmm7, xmm13
addsd xmm0, qword [rsi + rax*8 + 0x31858]
xorps xmm9, xmm13
mulsd xmm0, xmm0
xorps xmm0, xmm13
movaps xmm1, xmm0
mulsd xmm1, xmm14
addsd xmm1, xmm15
mulsd xmm1, xmm0
addsd xmm1, xmm4
mulsd xmm1, xmm0
addsd xmm1, qword [0x180031a48]
mulsd xmm1, xmm0
addsd xmm1, qword [0x180031a50]
mulsd xmm1, xmm0
addsd xmm1, qword [0x180031a60]
mulsd xmm1, xmm0
addsd xmm1, qword [0x180031a70]
mulsd xmm1, xmm0
addsd xmm1, qword [0x180031a80]
mulsd xmm1, xmm0
addsd xmm1, qword [0x180031a88]
mulsd xmm1, xmm0
addsd xmm1, qword [0x180031a98]
mulsd xmm1, qword [rsi + rax*8 + 0x31818]
lea eax, [rcx - 1]
and eax, 3
addsd xmm2, qword [rsi + rax*8 + 0x317f8]
mulsd xmm1, xmm12
mulsd xmm2, xmm2
addsd xmm1, xmm3
xorps xmm2, xmm13
movaps xmm0, xmm2
mulsd xmm0, xmm14
cvtsd2ss xmm6, xmm1
addsd xmm0, xmm15
mulsd xmm0, xmm2
addsd xmm0, xmm4
mulsd xmm0, xmm2
addsd xmm0, qword [0x180031a48]
mulsd xmm0, xmm2
addsd xmm0, qword [0x180031a50]
mulsd xmm0, xmm2
addsd xmm0, qword [0x180031a60]
mulsd xmm0, xmm2
lea r9, [rsp + 0x30]
movaps xmm1, xmm7
movss dword [rsp + 0x48], xmm6
mulsd xmm1, xmm14
xorps xmm4, xmm4
addsd xmm0, qword [0x180031a70]
addsd xmm1, xmm15
mulsd xmm0, xmm2
mulsd xmm1, xmm7
addsd xmm0, qword [0x180031a80]
addsd xmm1, qword [0x180031a38]
mulsd xmm0, xmm2
mulsd xmm1, xmm7
addsd xmm0, qword [0x180031a88]
addsd xmm1, qword [0x180031a48]
mulsd xmm0, xmm2
xorps xmm2, xmm2
mulsd xmm1, xmm7
addsd xmm0, qword [0x180031a98]
addsd xmm1, qword [0x180031a50]
mulsd xmm0, qword [rsi + rax*8 + 0x31838]
mulsd xmm1, xmm7
mulsd xmm0, xmm12
addsd xmm1, qword [0x180031a60]
addsd xmm0, xmm5
mulsd xmm1, xmm7
cvtsd2ss xmm4, xmm0
addsd xmm1, qword [0x180031a70]
movaps xmm0, xmm9
movss dword [rsp + 0x4c], xmm4
mulsd xmm0, xmm14
mulsd xmm1, xmm7
addsd xmm0, xmm15
addsd xmm1, qword [0x180031a80]
mulsd xmm0, xmm9
mulsd xmm1, xmm7
addsd xmm0, qword [0x180031a38]
addsd xmm1, qword [0x180031a88]
mulsd xmm0, xmm9
mulsd xmm1, xmm7
addsd xmm0, qword [0x180031a48]
addsd xmm1, qword [0x180031a98]
mulsd xmm0, xmm9
mulsd xmm1, qword [rsi + rdx*8 + 0x31818]
addsd xmm0, qword [0x180031a50]
mulsd xmm1, xmm12
mulsd xmm0, xmm9
addsd xmm1, xmm3
xorps xmm3, xmm3
addsd xmm0, qword [0x180031a60]
cvtsd2ss xmm3, xmm1
mulsd xmm0, xmm9
movaps xmm1, xmm3
movss dword [rsp + 0x40], xmm3
addsd xmm0, qword [0x180031a70]
mulsd xmm0, xmm9
addsd xmm0, qword [0x180031a80]
mulsd xmm0, xmm9
addsd xmm0, qword [0x180031a88]
mulsd xmm0, xmm9
addsd xmm0, qword [0x180031a98]
mulsd xmm0, qword [rsi + r8*8 + 0x31838]
mov r8d, edi
mulsd xmm0, xmm12
addsd xmm0, xmm5
cvtsd2ss xmm2, xmm0
movaps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x30], xmm0
movaps xmm0, xmm6
unpcklps xmm1, xmm2
unpcklps xmm0, xmm4
movq rcx, xmm1
movq rdx, xmm0
movss dword [rsp + 0x44], xmm2
call fcn.180003cd0
movsd xmm4, qword [0x180031a38]
movsd xmm2, qword [0x180031a90]
movsd xmm3, qword [0x180031aa0]
movss xmm5, dword [rsp + 0x20]
comisd xmm10, xmm8
ja 0x180004120
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.18000d320
lea r11, [rsp + 0x4f0]
mov rbx, qword [r11 + 0x18]
mov rsi, 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 rdi
ret