Function at 0x492e00
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x114
mov eax, dword [esp + 0x11c]
xor edx, edx
push edi
mov edi, dword [esp + 0x11c]
mov dword [esp + 0x114], edx
movss xmm7, dword [edi]
cvtps2pd xmm7, xmm7
cmp dword [eax], edx
jbe 0x4931a3
mov eax, dword [esp + 0x124]
lea ecx, [esp + 4]
sub dword [esp + 0x128], ecx
xorps xmm4, xmm4
movsd xmm5, qword [0x4e3100]
movsd xmm2, qword [0x4ca758]
mov dword [esp + 0x10c], eax
lea eax, [edi - 8]
mov dword [esp + 0x108], edx
mov dword [esp + 0x110], eax
push esi
nop dword [eax + eax]
movss xmm0, dword [eax + 0xc]
xorps xmm3, xmm3
xorps xmm0, xmmword [0x56a370]
xor ecx, ecx
cvtss2sd xmm3, xmm0
test edx, edx
je 0x493009
cmp edx, 4
jb 0x492f24
mov eax, edx
lea esi, [esp + 0x18]
and eax, 3
mov edi, edx
xorps xmm6, xmm6
sub edi, eax
mov eax, dword [esp + 0x114]
movaps xmm4, xmm6
movss xmm0, dword [eax + 8]
add ecx, 4
movaps xmm2, xmm0
movss xmm0, dword [eax + 4]
movaps xmm1, xmm0
movups xmm0, xmmword [esi - 0x10]
unpcklps xmm2, xmm1
cvtps2pd xmm1, xmm2
mulpd xmm1, xmm0
movss xmm0, dword [eax]
movaps xmm2, xmm0
movss xmm0, dword [eax - 4]
subpd xmm6, xmm1
sub eax, 0x10
movaps xmm1, xmm0
movups xmm0, xmmword [esi]
add esi, 0x20
unpcklps xmm2, xmm1
cvtps2pd xmm1, xmm2
mulpd xmm1, xmm0
subpd xmm4, xmm1
cmp ecx, edi
jb 0x492eb0
movsd xmm2, qword [0x4ca758]
mov edi, dword [esp + 0x120]
addpd xmm4, xmm6
movaps xmm0, xmm4
unpckhpd xmm0, xmm4
addsd xmm4, xmm0
addsd xmm3, xmm4
xorps xmm4, xmm4
cmp ecx, edx
jae 0x493009
mov esi, edx
sub esi, ecx
cmp esi, 4
jb 0x492fd6
mov edx, dword [esp + 0x120]
lea edi, [edi + esi*4]
sub edx, 4
lea eax, [esp + 0x18]
add edi, 0xfffffff4
lea eax, [eax + ecx*8]
lea esi, [edx + esi*4]
mov dword [esp + 0x108], esi
mov esi, dword [esp + 0x118]
mov edx, dword [esp + 0x108]
sub esi, ecx
sub esi, 4
shr esi, 2
inc esi
lea ecx, [ecx + esi*4]
nop dword [eax]
nop dword [eax + eax]
movss xmm0, dword [edi + 0xc]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [eax - 0x10]
subsd xmm3, xmm0
movss xmm0, dword [edx]
cvtps2pd xmm0, xmm0
sub edx, 0x10
mulsd xmm0, qword [eax - 8]
subsd xmm3, xmm0
movss xmm0, dword [edi + 4]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [eax]
subsd xmm3, xmm0
movss xmm0, dword [edi]
cvtps2pd xmm0, xmm0
sub edi, 0x10
mulsd xmm0, qword [eax + 8]
add eax, 0x20
subsd xmm3, xmm0
sub esi, 1
jne 0x492f80
mov edx, dword [esp + 0x118]
cmp ecx, edx
jae 0x493009
mov esi, dword [esp + 0x120]
mov eax, edx
sub eax, ecx
lea eax, [esi + eax*4]
nop dword [eax + eax]
movss xmm0, dword [eax]
sub eax, 4
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [esp + ecx*8 + 8]
inc ecx
subsd xmm3, xmm0
cmp ecx, edx
jb 0x492ff0
divsd xmm3, xmm7
mov esi, edx
mov eax, 0
shr esi, 1
movsd qword [esp + edx*8 + 8], xmm3
je 0x49304d
lea ecx, [esp + edx*8]
movsd xmm0, qword [ecx]
movsd xmm1, qword [esp + eax*8 + 8]
mulsd xmm0, xmm3
addsd xmm0, xmm1
mulsd xmm1, xmm3
movsd qword [esp + eax*8 + 8], xmm0
inc eax
addsd xmm1, qword [ecx]
movsd qword [ecx], xmm1
sub ecx, 8
cmp eax, esi
jb 0x493021
test dl, 1
je 0x493065
movaps xmm0, xmm3
addsd xmm0, xmm2
mulsd xmm0, qword [esp + eax*8 + 8]
movsd qword [esp + eax*8 + 8], xmm0
mulsd xmm3, xmm3
lea edi, [edx + 1]
mov dword [esp + 0x108], edi
xor ecx, ecx
movaps xmm0, xmm2
subsd xmm0, xmm3
mulsd xmm7, xmm0
cmp edi, 4
jb 0x4930f3
mov esi, dword [esp + 0x110]
lea eax, [esp + 0x18]
shr edi, 2
lea ecx, [edi*4]
nop word [eax + eax]
movsd xmm0, qword [eax - 0x10]
lea eax, [eax + 0x20]
lea esi, [esi + 0x10]
xorps xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esi - 0x10], xmm0
movsd xmm0, qword [eax - 0x28]
xorps xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esi - 0xc], xmm0
movsd xmm0, qword [eax - 0x20]
xorps xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esi - 8], xmm0
movsd xmm0, qword [eax - 0x18]
xorps xmm0, xmm5
cvtsd2ss xmm0, xmm0
movss dword [esi - 4], xmm0
sub edi, 1
jne 0x4930a0
cmp ecx, edx
ja 0x49312c
mov esi, dword [esp + 0x10c]
mov edi, dword [esp + 0x128]
lea eax, [esi + ecx]
lea eax, [edi + eax*4]
nop word [eax + eax]
movsd xmm0, qword [esp + ecx*8 + 8]
lea eax, [eax + 4]
xorps xmm0, xmm5
inc ecx
cvtsd2ss xmm0, xmm0
movss dword [eax - 4], xmm0
cmp ecx, edx
jbe 0x493110
jmp 0x493133
mov esi, dword [esp + 0x10c]
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x124]
ucomisd xmm7, xmm4
lea eax, [eax + edx*8]
movsd qword [esp + eax + 8], xmm7
lahf
test ah, 0x44
jnp 0x49319d
mov eax, dword [esp + 0x114]
add esi, 0x20
mov edx, dword [esp + 0x108]
add eax, 4
sub dword [esp + 0x110], 0xffffff80
mov edi, dword [esp + 0x120]
mov dword [esp + 0x118], edx
mov dword [esp + 0x114], eax
mov dword [esp + 0x10c], esi
cmp edx, dword [ecx]
jb 0x492e70
pop esi
pop edi
add esp, 0x114
ret
lea eax, [edx + 1]
mov dword [ecx], eax
pop esi
pop edi
add esp, 0x114
ret