Function at 0x48c130
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 0x48c4d3
mov eax, dword [esp + 0x124]
lea ecx, [esp + 4]
sub dword [esp + 0x128], ecx
xorps xmm4, xmm4
movsd xmm5, qword [0x509c00]
movsd xmm2, qword [0x5a1738]
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 [0x4e8490]
xor ecx, ecx
cvtss2sd xmm3, xmm0
test edx, edx
je 0x48c339
cmp edx, 4
jb 0x48c254
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 0x48c1e0
movsd xmm2, qword [0x5a1738]
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 0x48c339
mov esi, edx
sub esi, ecx
cmp esi, 4
jb 0x48c306
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 0x48c2b0
mov edx, dword [esp + 0x118]
cmp ecx, edx
jae 0x48c339
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 0x48c320
divsd xmm3, xmm7
mov esi, edx
mov eax, 0
shr esi, 1
movsd qword [esp + edx*8 + 8], xmm3
je 0x48c37d
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 0x48c351
test dl, 1
je 0x48c395
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 0x48c423
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 0x48c3d0
cmp ecx, edx
ja 0x48c45c
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 0x48c440
jmp 0x48c463
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 0x48c4cd
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 0x48c1a0
pop esi
pop edi
add esp, 0x114
ret
lea eax, [edx + 1]
mov dword [ecx], eax
pop esi
pop edi
add esp, 0x114
ret