Function at 0x4e0a90
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x12c
mov eax, dword [0x55ca98]
xor eax, esp
mov dword [esp + 0x128], eax
mov eax, dword [esp + 0x134]
mov edx, dword [esp + 0x13c]
mov ecx, dword [esp + 0x138]
push esi
mov esi, dword [esp + 0x134]
mov dword [esp + 0xc], edx
xor edx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], ecx
movsd xmm6, qword [esi]
cmp dword [eax], edx
jbe 0x4e0d9c
movsd xmm4, qword [0x515ce0]
lea eax, [ecx + 8]
movsd xmm7, qword [0x520258]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x34]
sub eax, esi
mov dword [esp + 0x28], edx
push edi
lea edi, [esi - 0x10]
mov dword [esp + 0x18], eax
sub ecx, esi
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], ecx
movsd xmm2, qword [edi + 0x18]
xor ecx, ecx
xorps xmm2, xmm4
test edx, edx
je 0x4e0c26
cmp edx, 4
jb 0x4e0b99
mov esi, edx
xorps xmm5, xmm5
and esi, 0xfffffffc
xorps xmm3, xmm3
mov eax, edi
nop word [eax + eax]
movups xmm0, xmmword [esp + ecx*8 + 0x30]
movsd xmm1, qword [eax + 0x10]
movhpd xmm1, qword [eax + 8]
mulpd xmm1, xmm0
movups xmm0, xmmword [esp + ecx*8 + 0x40]
add ecx, 4
subpd xmm5, xmm1
movsd xmm1, qword [eax]
movhpd xmm1, qword [eax - 8]
sub eax, 0x20
mulpd xmm1, xmm0
subpd xmm3, xmm1
cmp ecx, esi
jb 0x4e0b40
addpd xmm3, xmm5
movaps xmm0, xmm3
unpckhpd xmm0, xmm3
addsd xmm3, xmm0
addsd xmm2, xmm3
cmp ecx, edx
jae 0x4e0c26
mov esi, dword [esp + 0x138]
mov eax, edx
sub eax, ecx
cmp eax, 4
jb 0x4e0bfb
add eax, 0xfffffffe
lea edi, [edx - 3]
lea eax, [esi + eax*8]
nop dword [eax + eax]
movsd xmm0, qword [esp + ecx*8 + 0x30]
mulsd xmm0, qword [eax + 0x10]
subsd xmm2, xmm0
movsd xmm0, qword [esp + ecx*8 + 0x38]
mulsd xmm0, qword [eax + 8]
subsd xmm2, xmm0
movsd xmm0, qword [esp + ecx*8 + 0x40]
mulsd xmm0, qword [eax]
subsd xmm2, xmm0
movsd xmm0, qword [esp + ecx*8 + 0x48]
mulsd xmm0, qword [eax - 8]
add ecx, 4
sub eax, 0x20
mov esi, ecx
subsd xmm2, xmm0
cmp ecx, edi
jb 0x4e0bb0
cmp esi, edx
jae 0x4e0c26
mov esi, dword [esp + 0x138]
mov eax, edx
sub eax, ecx
lea eax, [esi + eax*8]
nop dword [eax]
movsd xmm0, qword [esp + ecx*8 + 0x30]
inc ecx
mulsd xmm0, qword [eax]
sub eax, 8
subsd xmm2, xmm0
cmp ecx, edx
jb 0x4e0c10
divsd xmm2, xmm6
mov eax, dword [esp + 0x1c]
mov esi, edx
shr esi, 1
mov ecx, dword [esp + 0x24]
movsd qword [eax + ecx], xmm2
mov eax, 0
je 0x4e0c7b
add ecx, dword [esp + 0x18]
nop word [eax + eax]
movsd xmm1, qword [esp + eax*8 + 0x30]
movaps xmm0, xmm2
mulsd xmm0, qword [ecx]
addsd xmm0, xmm1
mulsd xmm1, xmm2
movsd qword [esp + eax*8 + 0x30], xmm0
inc eax
addsd xmm1, qword [ecx]
movsd qword [ecx], xmm1
sub ecx, 8
cmp eax, esi
jb 0x4e0c50
test dl, 1
je 0x4e0c93
movaps xmm0, xmm2
addsd xmm0, xmm7
mulsd xmm0, qword [esp + eax*8 + 0x30]
movsd qword [esp + eax*8 + 0x30], xmm0
mulsd xmm2, xmm2
lea edi, [edx + 1]
xor ecx, ecx
movaps xmm0, xmm7
subsd xmm0, xmm2
mulsd xmm6, xmm0
cmp edi, 4
jb 0x4e0d09
mov eax, dword [esp + 0x28]
lea esi, [edx - 3]
movsd xmm0, qword [esp + ecx*8 + 0x30]
lea eax, [eax + 0x10]
xorps xmm0, xmm4
cvtsd2ss xmm0, xmm0
movss dword [eax - 0x18], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x38]
xorps xmm0, xmm4
cvtsd2ss xmm0, xmm0
movss dword [eax - 0x14], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x40]
xorps xmm0, xmm4
cvtsd2ss xmm0, xmm0
movss dword [eax - 0x10], xmm0
movsd xmm0, qword [esp + ecx*8 + 0x48]
add ecx, 4
xorps xmm0, xmm4
cvtsd2ss xmm0, xmm0
movss dword [eax - 0xc], xmm0
cmp ecx, esi
jbe 0x4e0cb3
cmp ecx, edx
ja 0x4e0d3c
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x14]
add eax, ecx
lea eax, [esi + eax*4]
mov esi, dword [esp + 0x2c]
nop word [eax + eax]
movsd xmm0, qword [esp + ecx*8 + 0x30]
lea eax, [eax + 4]
xorps xmm0, xmm4
inc ecx
cvtsd2ss xmm0, xmm0
movss dword [eax - 4], xmm0
cmp ecx, edx
jbe 0x4e0d20
jmp 0x4e0d40
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
xorps xmm0, xmm0
ucomisd xmm6, xmm0
movsd qword [eax + edx*8], xmm6
lahf
test ah, 0x44
mov eax, dword [esp + 0x20]
jnp 0x4e0d99
sub dword [esp + 0x28], 0xffffff80
mov edx, edi
mov edi, dword [esp + 0x24]
add esi, 0x20
add edi, 8
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x138]
mov dword [esp + 0x24], edi
cmp edx, dword [eax]
jb 0x4e0b12
pop edi
pop esi
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.005091c5
add esp, 0x12c
ret
mov dword [eax], edi
pop edi
mov ecx, dword [esp + 0x12c]
pop esi
xor ecx, esp
call fcn.005091c5
add esp, 0x12c
ret