Function at 0x4f1ea0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x12c
mov eax, dword [0x8815d0]
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 0x4f21ac
movsd xmm4, qword [0x511f00]
lea eax, [ecx + 8]
movsd xmm7, qword [0x58a238]
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 0x4f2036
cmp edx, 4
jb 0x4f1fa9
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 0x4f1f50
addpd xmm3, xmm5
movaps xmm0, xmm3
unpckhpd xmm0, xmm3
addsd xmm3, xmm0
addsd xmm2, xmm3
cmp ecx, edx
jae 0x4f2036
mov esi, dword [esp + 0x138]
mov eax, edx
sub eax, ecx
cmp eax, 4
jb 0x4f200b
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 0x4f1fc0
cmp esi, edx
jae 0x4f2036
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 0x4f2020
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 0x4f208b
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 0x4f2060
test dl, 1
je 0x4f20a3
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 0x4f2119
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 0x4f20c3
cmp ecx, edx
ja 0x4f214c
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 0x4f2130
jmp 0x4f2150
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 0x4f21a9
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 0x4f1f22
pop edi
pop esi
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.00432bfc
add esp, 0x12c
ret
mov dword [eax], edi
pop edi
mov ecx, dword [esp + 0x12c]
pop esi
xor ecx, esp
call fcn.00432bfc
add esp, 0x12c
ret