Function at 0x417b40
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
xorps xmm0, xmm0
movss xmm3, dword [0x451420]
movsd xmm4, qword [0x451bf8]
movsd xmm1, qword [0x451bf0]
movsd xmm5, qword [0x451450]
cdq
push ebp
mov ebp, dword [esp + 0x18]
sub eax, edx
push edi
sar eax, 1
xor edi, edi
movss dword [esp + 0x10], xmm0
cmp eax, 4
jl 0x4180ec
push ebx
push esi
mov esi, dword [esp + 0x20]
lea ebx, [eax - 4]
shr ebx, 2
add esi, 8
inc ebx
lea edx, [ebp + 8]
lea edi, [ebx*4]
lea esp, [esp]
movss xmm2, dword [edx - 8]
cvtps2pd xmm0, xmm2
movss xmm6, dword [ecx]
cvtps2pd xmm7, xmm6
subsd xmm0, xmm7
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
mulsd xmm0, xmm4
cvtpd2ps xmm0, xmm0
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
cvtss2sd xmm0, xmm0
cvtps2pd xmm6, xmm6
addsd xmm6, xmm7
cvtps2pd xmm2, xmm2
addsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [ecx], xmm0
movss xmm2, dword [edx - 4]
movss xmm0, dword [ecx + 4]
cvtps2pd xmm0, xmm0
cvtps2pd xmm7, xmm2
subsd xmm7, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm7
movss xmm7, dword [ecx + 4]
cvtpd2ps xmm6, xmm6
cvtps2pd xmm0, xmm0
movss dword [esp + 0x14], xmm6
mulsd xmm0, xmm1
cvtpd2ps xmm0, xmm0
cvtss2sd xmm6, xmm6
cvtps2pd xmm7, xmm7
addsd xmm7, xmm6
xorps xmm6, xmm6
cvtpd2ps xmm6, xmm7
cvtps2pd xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm0
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
cvtss2sd xmm0, xmm0
movss dword [esp + 0x10], xmm6
cvtps2pd xmm6, xmm2
addsd xmm0, xmm6
cvtpd2ps xmm0, xmm0
movss dword [ecx + 4], xmm0
movss xmm0, dword [ecx + 8]
cvtps2pd xmm7, xmm0
cvtps2pd xmm0, xmm0
xorps xmm2, xmm3
cvtps2pd xmm6, xmm2
subsd xmm6, xmm7
movss xmm7, dword [esp + 0x14]
cvtpd2ps xmm6, xmm6
cvtss2sd xmm6, xmm6
cvtps2pd xmm7, xmm7
addsd xmm0, xmm7
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
mulsd xmm6, xmm1
cvtpd2ps xmm6, xmm6
cvtps2pd xmm2, xmm2
xorps xmm7, xmm7
cvtss2sd xmm7, xmm6
addsd xmm0, xmm7
cvtpd2ps xmm0, xmm0
cvtss2sd xmm0, xmm0
cvtss2sd xmm6, xmm6
addsd xmm2, xmm6
cvtpd2ps xmm2, xmm2
mulsd xmm0, xmm0
movss dword [ecx + 8], xmm2
movss xmm2, dword [esp + 0x18]
cvtps2pd xmm2, xmm2
addsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x10]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esi - 8], xmm0
movss xmm0, dword [edx]
movss xmm2, dword [ecx]
cvtps2pd xmm7, xmm2
cvtps2pd xmm6, xmm0
subsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
cvtss2sd xmm6, xmm6
mulsd xmm6, xmm4
cvtpd2ps xmm6, xmm6
cvtps2pd xmm2, xmm2
xorps xmm7, xmm7
cvtss2sd xmm7, xmm6
addsd xmm2, xmm7
cvtss2sd xmm6, xmm6
cvtps2pd xmm0, xmm0
addsd xmm6, xmm0
cvtpd2ps xmm2, xmm2
movss dword [esp + 0x14], xmm2
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm6
movss xmm6, dword [ecx + 4]
cvtps2pd xmm6, xmm6
cvtss2sd xmm2, xmm2
movss dword [ecx], xmm0
movss xmm0, dword [edx + 4]
cvtps2pd xmm7, xmm0
subsd xmm7, xmm6
xorps xmm6, xmm6
cvtpd2ps xmm6, xmm7
movss xmm7, dword [ecx + 4]
cvtps2pd xmm6, xmm6
cvtps2pd xmm7, xmm7
addsd xmm7, xmm2
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm7
cvtps2pd xmm2, xmm2
mulsd xmm6, xmm1
cvtpd2ps xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm6
addsd xmm2, xmm7
cvtpd2ps xmm2, xmm2
movss dword [esp + 0x10], xmm2
xorps xmm2, xmm2
cvtss2sd xmm2, xmm6
cvtps2pd xmm6, xmm0
addsd xmm2, xmm6
cvtpd2ps xmm2, xmm2
movss dword [ecx + 4], xmm2
movss xmm2, dword [ecx + 8]
cvtps2pd xmm7, xmm2
xorps xmm0, xmm3
cvtps2pd xmm6, xmm0
subsd xmm6, xmm7
movss xmm7, dword [esp + 0x14]
cvtps2pd xmm2, xmm2
cvtpd2ps xmm6, xmm6
cvtss2sd xmm6, xmm6
cvtps2pd xmm7, xmm7
addsd xmm2, xmm7
cvtps2pd xmm0, xmm0
mulsd xmm6, xmm1
cvtpd2ps xmm6, xmm6
cvtpd2ps xmm2, xmm2
xorps xmm7, xmm7
cvtss2sd xmm7, xmm6
cvtss2sd xmm2, xmm2
cvtss2sd xmm6, xmm6
addsd xmm0, xmm6
cvtpd2ps xmm0, xmm0
movss dword [ecx + 8], xmm0
addsd xmm2, xmm7
cvtpd2ps xmm2, xmm2
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
movss xmm2, dword [esp + 0x18]
mulsd xmm0, xmm0
cvtps2pd xmm2, xmm2
addsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x10]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esi - 4], xmm0
movss xmm0, dword [edx + 8]
movss xmm2, dword [ecx]
cvtps2pd xmm7, xmm2
cvtps2pd xmm6, xmm0
subsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
cvtss2sd xmm6, xmm6
mulsd xmm6, xmm4
cvtpd2ps xmm6, xmm6
cvtps2pd xmm2, xmm2
xorps xmm7, xmm7
cvtss2sd xmm7, xmm6
addsd xmm2, xmm7
cvtss2sd xmm6, xmm6
cvtpd2ps xmm2, xmm2
cvtps2pd xmm0, xmm0
addsd xmm6, xmm0
movss dword [esp + 0x14], xmm2
cvtss2sd xmm2, xmm2
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm6
movss xmm6, dword [ecx + 4]
cvtps2pd xmm6, xmm6
movss dword [ecx], xmm0
movss xmm0, dword [edx + 0xc]
cvtps2pd xmm7, xmm0
subsd xmm7, xmm6
xorps xmm6, xmm6
cvtpd2ps xmm6, xmm7
movss xmm7, dword [ecx + 4]
cvtps2pd xmm6, xmm6
cvtps2pd xmm7, xmm7
addsd xmm7, xmm2
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm7
cvtps2pd xmm2, xmm2
mulsd xmm6, xmm1
cvtpd2ps xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm6
addsd xmm2, xmm7
cvtpd2ps xmm2, xmm2
movss dword [esp + 0x10], xmm2
xorps xmm2, xmm2
cvtss2sd xmm2, xmm6
cvtps2pd xmm6, xmm0
addsd xmm2, xmm6
cvtpd2ps xmm2, xmm2
movss dword [ecx + 4], xmm2
movss xmm2, dword [ecx + 8]
cvtps2pd xmm7, xmm2
xorps xmm0, xmm3
cvtps2pd xmm6, xmm0
subsd xmm6, xmm7
movss xmm7, dword [esp + 0x14]
cvtpd2ps xmm6, xmm6
cvtps2pd xmm2, xmm2
cvtss2sd xmm6, xmm6
cvtps2pd xmm7, xmm7
addsd xmm2, xmm7
mulsd xmm6, xmm1
cvtpd2ps xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm6
cvtps2pd xmm0, xmm0
cvtpd2ps xmm2, xmm2
cvtss2sd xmm6, xmm6
addsd xmm0, xmm6
cvtss2sd xmm2, xmm2
cvtpd2ps xmm0, xmm0
addsd xmm2, xmm7
movss dword [ecx + 8], xmm0
cvtpd2ps xmm2, xmm2
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
movss xmm2, dword [esp + 0x18]
cvtps2pd xmm2, xmm2
mulsd xmm0, xmm0
addsd xmm0, xmm2
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x10]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esi], xmm0
movss xmm0, dword [edx + 0x10]
movss xmm2, dword [ecx]
cvtps2pd xmm7, xmm2
cvtps2pd xmm6, xmm0
subsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
cvtss2sd xmm6, xmm6
mulsd xmm6, xmm4
cvtpd2ps xmm6, xmm6
cvtps2pd xmm2, xmm2
xorps xmm7, xmm7
cvtss2sd xmm7, xmm6
addsd xmm2, xmm7
cvtss2sd xmm6, xmm6
cvtpd2ps xmm2, xmm2
movss dword [esp + 0x14], xmm2
cvtps2pd xmm0, xmm0
addsd xmm6, xmm0
cvtss2sd xmm2, xmm2
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm6
movss xmm6, dword [ecx + 4]
cvtps2pd xmm6, xmm6
movss dword [ecx], xmm0
movss xmm0, dword [edx + 0x14]
cvtps2pd xmm7, xmm0
subsd xmm7, xmm6
xorps xmm6, xmm6
cvtpd2ps xmm6, xmm7
movss xmm7, dword [ecx + 4]
cvtps2pd xmm7, xmm7
addsd xmm7, xmm2
xorps xmm2, xmm2
cvtpd2ps xmm2, xmm7
cvtps2pd xmm2, xmm2
cvtps2pd xmm6, xmm6
mulsd xmm6, xmm1
cvtpd2ps xmm6, xmm6
xorps xmm7, xmm7
cvtss2sd xmm7, xmm6
addsd xmm2, xmm7
cvtpd2ps xmm2, xmm2
movss dword [esp + 0x10], xmm2
xorps xmm2, xmm2
cvtss2sd xmm2, xmm6
cvtps2pd xmm6, xmm0
addsd xmm2, xmm6
cvtpd2ps xmm2, xmm2
movss dword [ecx + 4], xmm2
movss xmm2, dword [ecx + 8]
cvtps2pd xmm7, xmm2
xorps xmm0, xmm3
cvtps2pd xmm6, xmm0
subsd xmm6, xmm7
movss xmm7, dword [esp + 0x14]
cvtps2pd xmm2, xmm2
cvtpd2ps xmm6, xmm6
cvtps2pd xmm7, xmm7
addsd xmm2, xmm7
cvtss2sd xmm6, xmm6
cvtpd2ps xmm2, xmm2
mulsd xmm6, xmm1
cvtpd2ps xmm6, xmm6
cvtss2sd xmm2, xmm2
xorps xmm7, xmm7
cvtss2sd xmm7, xmm6
addsd xmm2, xmm7
cvtpd2ps xmm2, xmm2
cvtps2pd xmm0, xmm0
cvtss2sd xmm6, xmm6
addsd xmm0, xmm6
cvtpd2ps xmm0, xmm0
movss dword [ecx + 8], xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
movss xmm2, dword [esp + 0x18]
cvtps2pd xmm2, xmm2
mulsd xmm0, xmm0
addsd xmm0, xmm2
movss xmm2, dword [esp + 0x10]
cvtps2pd xmm2, xmm2
mulsd xmm2, xmm5
cvtsd2ss xmm2, xmm2
movss dword [esi + 4], xmm2
add esi, 0x10
add edx, 0x20
dec ebx
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x18], xmm0
jne 0x417ba0
pop esi
pop ebx
cmp edi, eax
jge 0x418290
jmp 0x418100
movss xmm2, dword [ebp + edi*8]
movss xmm6, dword [ecx]
cvtps2pd xmm6, xmm6
cvtps2pd xmm7, xmm2
subsd xmm7, xmm6
xorps xmm6, xmm6
cvtpd2ps xmm6, xmm7
cvtps2pd xmm6, xmm6
mulsd xmm6, xmm4
xorps xmm7, xmm7
cvtpd2ps xmm7, xmm6
movss xmm6, dword [ecx]
cvtps2pd xmm6, xmm6
movss dword [esp + 0x10], xmm7
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
movss xmm7, dword [esp + 0x10]
cvtpd2ps xmm6, xmm6
movss dword [esp + 8], xmm6
movss dword [esp + 0xc], xmm6
movss xmm6, dword [ecx + 4]
cvtps2pd xmm6, xmm6
cvtps2pd xmm7, xmm7
cvtps2pd xmm2, xmm2
addsd xmm7, xmm2
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm7
movss dword [ecx], xmm2
movss xmm2, dword [ebp + edi*8 + 4]
cvtps2pd xmm7, xmm2
subsd xmm7, xmm6
xorps xmm6, xmm6
cvtpd2ps xmm6, xmm7
movss xmm7, dword [esp + 8]
cvtps2pd xmm6, xmm6
mulsd xmm6, xmm1
cvtpd2ps xmm6, xmm6
movss dword [esp + 0x10], xmm6
movss xmm6, dword [ecx + 4]
cvtps2pd xmm6, xmm6
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
movss xmm7, dword [esp + 0x10]
cvtpd2ps xmm6, xmm6
cvtss2sd xmm6, xmm6
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
cvtpd2ps xmm6, xmm6
movss dword [esp + 8], xmm6
movss xmm6, dword [esp + 0x10]
cvtps2pd xmm6, xmm6
cvtps2pd xmm7, xmm2
addsd xmm6, xmm7
cvtsd2ss xmm6, xmm6
movss dword [ecx + 4], xmm6
movss xmm6, dword [ecx + 8]
cvtps2pd xmm6, xmm6
xorps xmm2, xmm3
cvtps2pd xmm7, xmm2
subsd xmm7, xmm6
xorps xmm6, xmm6
cvtpd2ps xmm6, xmm7
movss xmm7, dword [esp + 0xc]
cvtps2pd xmm6, xmm6
mulsd xmm6, xmm1
cvtpd2ps xmm6, xmm6
movss dword [esp + 0x10], xmm6
movss xmm6, dword [ecx + 8]
cvtps2pd xmm6, xmm6
cvtps2pd xmm7, xmm7
addsd xmm6, xmm7
movss xmm7, dword [esp + 0x10]
cvtpd2ps xmm6, xmm6
cvtps2pd xmm7, xmm7
cvtss2sd xmm6, xmm6
addsd xmm6, xmm7
movss xmm7, dword [esp + 0x10]
cvtps2pd xmm2, xmm2
cvtps2pd xmm7, xmm7
cvtpd2ps xmm6, xmm6
addsd xmm2, xmm7
mov edx, dword [esp + 0x18]
cvtpd2ps xmm2, xmm2
movss dword [ecx + 8], xmm2
xorps xmm2, xmm2
cvtss2sd xmm2, xmm6
mulsd xmm2, xmm2
cvtss2sd xmm0, xmm0
addsd xmm2, xmm0
xorps xmm0, xmm0
cvtpd2ps xmm0, xmm2
movss xmm2, dword [esp + 8]
cvtps2pd xmm2, xmm2
mulsd xmm2, xmm5
cvtsd2ss xmm2, xmm2
movss dword [edx + edi*4], xmm2
inc edi
cmp edi, eax
jl 0x418100
pop edi
pop ebp
add esp, 0xc
ret