Function at 0x18007c050
Capabilities:
Encode data using xor

Disassembly:
push rbx
mov eax, 0x8040
call fcn.1801109a0
sub rsp, rax
movaps xmmword [rsp + 0x8030], xmm6
mov rax, qword [0x180166040]
xor rax, rsp
mov qword [rsp + 0x8020], rax
movaps xmm6, xmm3
mov rbx, r8
call fcn.18007e850
xorps xmm4, xmm4
ucomisd xmm6, xmm4
jp 0x18007c12d
jne 0x18007c12d
movsd xmm3, qword [0x1801419b0]
lea rax, [rbx + 0x10]
xorps xmm1, xmm1
mov ecx, 0x400
nop dword [rax + rax]
movsd xmm0, qword [rax - 0x10]
movsd xmm2, qword [rax]
andps xmm0, xmm3
maxsd xmm0, xmm1
movsd xmm1, qword [rax - 8]
lea rax, [rax + 0x40]
andps xmm1, xmm3
andps xmm2, xmm3
maxsd xmm1, xmm0
movsd xmm0, qword [rax - 0x38]
andps xmm0, xmm3
maxsd xmm2, xmm1
movsd xmm1, qword [rax - 0x30]
andps xmm1, xmm3
maxsd xmm0, xmm2
movsd xmm2, qword [rax - 0x28]
andps xmm2, xmm3
maxsd xmm1, xmm0
movsd xmm0, qword [rax - 0x20]
andps xmm0, xmm3
maxsd xmm2, xmm1
movsd xmm1, qword [rax - 0x18]
andps xmm1, xmm3
maxsd xmm0, xmm2
maxsd xmm1, xmm0
sub rcx, 1
jne 0x18007c0b0
movsd xmm6, qword [0x180140d58]
divsd xmm6, xmm1
mulsd xmm6, qword [0x180140d48]
lea rax, [rbx + 0xfff8]
xor ecx, ecx
lea rdx, [rsp + 0x20]
movaps xmm2, xmm6
unpcklpd xmm2, xmm2
cmp rdx, rax
ja 0x18007c20a
lea rax, [rsp + 0x801c]
cmp rax, rbx
jb 0x18007c20a
lea rax, [rcx + 2]
lea rax, [rbx + rax*8]
nop dword [rax]
nop dword [rax + rax]
movaps xmm0, xmm6
movaps xmm1, xmm6
mulsd xmm0, qword [rax - 0x10]
movaps xmm2, xmm6
mulsd xmm1, qword [rax - 8]
mulsd xmm2, qword [rax]
lea rax, [rax + 0x20]
cvtsd2ss xmm0, xmm0
movss dword [rsp + rcx*4 + 0x20], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movaps xmm1, xmm6
mulsd xmm1, qword [rax - 0x18]
movss dword [rsp + rcx*4 + 0x24], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm2
movss dword [rsp + rcx*4 + 0x28], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm1
movss dword [rsp + rcx*4 + 0x2c], xmm0
add rcx, 4
cmp rcx, 0x1ffd
jl 0x18007c170
cmp rcx, 0x2000
jge 0x18007c269
lea rax, [rsp + 0x20]
lea rax, [rax + rcx*4]
movaps xmm0, xmm6
lea rax, [rax + 4]
mulsd xmm0, qword [rbx + rcx*8]
inc rcx
cvtsd2ss xmm0, xmm0
movss dword [rax - 4], xmm0
cmp rcx, 0x2000
jl 0x18007c1e7
jmp 0x18007c269
add rbx, 0x20
nop
movups xmm0, xmmword [rbx - 0x20]
movups xmm1, xmmword [rbx - 0x10]
lea rbx, [rbx + 0x40]
mulpd xmm0, xmm2
mulpd xmm1, xmm2
cvtpd2ps xmm0, xmm0
movsd qword [rsp + rcx*4 + 0x20], xmm0
cvtpd2ps xmm0, xmm1
movups xmm1, xmmword [rbx - 0x40]
movsd qword [rsp + rcx*4 + 0x28], xmm0
mulpd xmm1, xmm2
cvtpd2ps xmm0, xmm1
movups xmm1, xmmword [rbx - 0x30]
movsd qword [rsp + rcx*4 + 0x30], xmm0
mulpd xmm1, xmm2
cvtpd2ps xmm0, xmm1
movsd qword [rsp + rcx*4 + 0x38], xmm0
add rcx, 8
cmp rcx, 0x2000
jl 0x18007c210
mov eax, dword [0x180171008]
cmp eax, 0xd
jge 0x18007c3db
mov ecx, 0x8004
call fcn.1800b6500
movsxd rdx, dword [0x180171008]
mov r8, rax
movsd xmm0, qword [rsp + 0x8070]
lea rax, [0x180184560]
mov rcx, rdx
inc edx
add rcx, rcx
mov dword [0x180171008], edx
mov qword [rax + rcx*8 + 8], r8
movsd qword [rax + rcx*8], xmm0
lea rcx, [rsp + 0x801c]
lea rax, [r8 + 0x7ffc]
cmp r8, rcx
ja 0x18007c341
lea rcx, [rsp + 0x20]
cmp rax, rcx
jb 0x18007c341
movss xmm2, dword [0x1801419d0]
lea rcx, [rsp + 0x20]
sub rcx, r8
lea rdx, [rsp + 0x24]
sub rdx, r8
lea rax, [r8 + 8]
mov r9d, 0x800
nop dword [rax]
nop dword [rax + rax]
movss xmm0, dword [rax + rcx - 8]
movss xmm1, dword [rdx + rax - 8]
xorps xmm0, xmm2
movss dword [rax - 8], xmm0
xorps xmm1, xmm2
movss xmm0, dword [rax + rcx]
movss dword [rax - 4], xmm1
xorps xmm0, xmm2
movss xmm1, dword [rdx + rax]
movss dword [rax], xmm0
xorps xmm1, xmm2
movss dword [rax + 4], xmm1
lea rax, [rax + 0x10]
sub r9, 1
jne 0x18007c300
jmp 0x18007c3a9
movdqa xmm2, xmmword [0x1801419d0]
lea rcx, [rsp + 0x20]
sub rcx, r8
lea rdx, [rsp + 0x30]
sub rdx, r8
lea rax, [r8 + 0x20]
mov r9d, 0x200
nop dword [rax]
nop word [rax + rax]
movups xmm0, xmmword [rax + rcx - 0x20]
movups xmm1, xmmword [rax + rcx]
lea rax, [rax + 0x40]
xorps xmm0, xmm2
xorps xmm1, xmm2
movups xmmword [rax - 0x60], xmm0
movups xmm0, xmmword [rdx + rax - 0x60]
xorps xmm0, xmm2
movups xmmword [rax - 0x50], xmm0
movups xmm0, xmmword [rdx + rax - 0x40]
movups xmmword [rax - 0x40], xmm1
xorps xmm0, xmm2
movups xmmword [rax - 0x30], xmm0
sub r9, 1
jne 0x18007c370
mov eax, dword [r8]
mov dword [r8 + 0x8000], eax
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm6
mov rcx, qword [rsp + 0x8020]
xor rcx, rsp
call fcn.1800b6030
movaps xmm6, xmmword [rsp + 0x8030]
add rsp, 0x8040
pop rbx
ret
test eax, eax
je 0x18007c3b3
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm4
jmp 0x18007c3ba