Function at 0x1007aab0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov edx, dword [ebp + 0xc]
sub esp, 0x18
xor eax, eax
xorps xmm2, xmm2
push esi
mov esi, ecx
push edi
mov edi, dword [ebp + 8]
test edx, edx
jle 0x1007aae7
nop dword [eax]
movss xmm0, dword [edi + eax*4]
call fcn.1007a6e0
cvtss2sd xmm0, xmm0
inc eax
addsd xmm2, xmm0
cmp eax, edx
jl 0x1007aad0
movd xmm0, edx
xor eax, eax
mov dword [esp + 0xc], eax
cvtdq2pd xmm0, xmm0
divsd xmm2, xmm0
mulsd xmm2, qword [0x103bb1c8]
movsd qword [esp + 0x18], xmm2
test edx, edx
jle 0x1007ab5f
nop dword [eax + eax]
mov ecx, dword [esi + 0x2588]
mov eax, dword [edi + eax*4]
mov dword [esi + ecx*4 + 8], eax
mov ecx, 0x960
mov eax, dword [esi + 0x2588]
inc eax
cdq
idiv ecx
movss xmm0, dword [esi + edx*4 + 8]
inc dword [esi + 0x2588]
cmp dword [esi + 0x2588], ecx
jl 0x1007ab4a
mov dword [esi + 0x2588], 0
mov eax, dword [esp + 0xc]
mov edx, dword [ebp + 0xc]
movss dword [edi + eax*4], xmm0
inc eax
mov dword [esp + 0xc], eax
cmp eax, edx
jl 0x1007ab10
movss xmm4, dword [0x103bafec]
xor eax, eax
mov dword [esp + 0xc], eax
test edx, edx
jle 0x1007ac0f
movss xmm0, dword [edi + eax*4]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esi + 0x2590]
movss dword [esp + 0x14], xmm0
mulss xmm0, dword [0x103bb068]
call fcn.100d3f4a
movss xmm4, dword [0x103bafec]
movaps xmm1, xmm0
movss xmm0, dword [esp + 0x14]
addss xmm0, dword [0x103baf64]
movss xmm3, dword [esp + 0x10]
mulss xmm1, xmm3
comiss xmm0, xmm4
movss dword [esi + 0x2590], xmm0
jbe 0x1007abd5
mov dword [esi + 0x2590], 0
movss xmm2, dword [esi + 0x258c]
movaps xmm0, xmm4
mov eax, dword [esp + 0xc]
subss xmm0, xmm2
mov edx, dword [ebp + 0xc]
mulss xmm1, xmm2
mulss xmm0, xmm3
addss xmm0, xmm1
movss dword [edi + eax*4], xmm0
inc eax
mov dword [esp + 0xc], eax
cmp eax, edx
jl 0x1007ab75
movsd xmm2, qword [esp + 0x18]
xor eax, eax
mov dword [esp + 0xc], eax
test edx, edx
jle 0x1007ad02
movsd xmm3, qword [0x103bafb0]
nop word [eax + eax]
movaps xmm0, xmm4
movss xmm1, dword [edi + eax*4]
subss xmm0, dword [esi + 0x258c]
mulss xmm0, dword [0x103bafa0]
cvtss2sd xmm0, xmm0
mulsd xmm0, xmm2
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
cvtps2pd xmm0, xmm2
movss dword [esp + 0x10], xmm2
comisd xmm3, xmm0
jbe 0x1007ac6b
xorps xmm1, xmm1
jmp 0x1007acea
comiss xmm1, xmm2
ja 0x1007ac7f
movaps xmm0, xmm2
xorps xmm0, xmmword [0x103bb510]
comiss xmm0, xmm1
jbe 0x1007acea
subss xmm1, xmm2
movaps xmm0, xmm2
mulss xmm0, dword [0x103bb1d8]
movss dword [esp + 0x14], xmm1
fld dword [esp + 0x14]
movss dword [esp + 0x14], xmm0
fld dword [esp + 0x14]
call fcn.100d21c0
fstp dword [esp + 0x14]
movss xmm0, dword [esp + 0x14]
call fcn.1007a6e0
movss xmm2, dword [esp + 0x10]
movaps xmm1, xmm2
addss xmm1, xmm2
subss xmm0, xmm1
call fcn.1007a6e0
movss xmm4, dword [0x103bafec]
movaps xmm1, xmm0
movsd xmm3, qword [0x103bafb0]
subss xmm1, xmm2
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0xc]
movsd xmm2, qword [esp + 0x18]
movss dword [edi + eax*4], xmm1
inc eax
mov dword [esp + 0xc], eax
cmp eax, edx
jl 0x1007ac30
movsd xmm5, qword [0x103bb500]
xor eax, eax
mov dword [esp + 0xc], eax
test edx, edx
jle 0x1007adc3
mov ecx, dword [esi + 4]
mov eax, dword [edi + eax*4]
mov dword [ecx], eax
movsd xmm1, qword [esi + 0x25d8]
movss xmm0, dword [ecx]
xorps xmm1, xmm5
movsd qword [esi + 0x25d8], xmm1
movsd xmm4, qword [esi + 0x25c8]
movsd xmm2, qword [esi + 0x25d0]
cvtps2pd xmm3, xmm0
movaps xmm0, xmm4
mulsd xmm0, qword [esi + 0x25a0]
subsd xmm3, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [esi + 0x25a8]
mulsd xmm2, qword [esi + 0x25b8]
subsd xmm3, xmm0
movaps xmm0, xmm4
mulsd xmm0, qword [esi + 0x25b0]
addsd xmm3, xmm1
movsd xmm1, qword [esi + 0x25c0]
movsd qword [esi + 0x25d0], xmm4
mulsd xmm1, xmm3
movsd qword [esi + 0x25c8], xmm3
addsd xmm1, xmm0
addsd xmm1, xmm2
cvtpd2ps xmm0, xmm1
movss dword [ecx], xmm0
mov eax, dword [ecx]
mov ecx, dword [esp + 0xc]
mov dword [edi + ecx*4], eax
mov eax, ecx
inc eax
mov dword [esp + 0xc], eax
cmp eax, edx
jl 0x1007ad18
xor eax, eax
mov dword [esp + 0xc], eax
test edx, edx
jle 0x1007ae7c
mov ecx, dword [esi + 4]
mov eax, dword [edi + eax*4]
mov dword [ecx], eax
movsd xmm1, qword [esi + 0x2620]
movss xmm0, dword [ecx]
xorps xmm1, xmm5
movsd qword [esi + 0x2620], xmm1
movsd xmm4, qword [esi + 0x2610]
movsd xmm2, qword [esi + 0x2618]
cvtps2pd xmm3, xmm0
movaps xmm0, xmm4
mulsd xmm0, qword [esi + 0x25e8]
subsd xmm3, xmm0
movaps xmm0, xmm2
mulsd xmm0, qword [esi + 0x25f0]
mulsd xmm2, qword [esi + 0x2600]
subsd xmm3, xmm0
movaps xmm0, xmm4
mulsd xmm0, qword [esi + 0x25f8]
addsd xmm3, xmm1
movsd xmm1, qword [esi + 0x2608]
movsd qword [esi + 0x2618], xmm4
mulsd xmm1, xmm3
movsd qword [esi + 0x2610], xmm3
addsd xmm1, xmm0
addsd xmm1, xmm2
cvtpd2ps xmm0, xmm1
movss dword [ecx], xmm0
mov eax, dword [ecx]
mov ecx, dword [esp + 0xc]
mov dword [edi + ecx*4], eax
mov eax, ecx
inc eax
mov dword [esp + 0xc], eax
cmp eax, edx
jl 0x1007add1
movaps xmm1, xmmword [0x103bb4b0]
xor ecx, ecx
cmp edx, 4
jl 0x1007aeb3
lea esi, [edx - 4]
shr esi, 2
lea eax, [edi + 8]
inc esi
lea ecx, [esi*4]
nop dword [eax + eax]
lea eax, [eax + 0x10]
movups xmm0, xmmword [eax - 0x18]
mulps xmm0, xmm1
movups xmmword [eax - 0x18], xmm0
sub esi, 1
jne 0x1007aea0
cmp ecx, edx
jge 0x1007aed3
nop word [eax + eax]
movss xmm0, dword [edi + ecx*4]
mulss xmm0, xmm1
movss dword [edi + ecx*4], xmm0
inc ecx
cmp ecx, edx
jl 0x1007aec0
pop edi
pop esi
mov esp, ebp
pop ebp
ret 8