Function at 0x548280
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x61f138]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, ecx
mov dword [ebp - 0x14], edx
mov ecx, dword [ebp + 0x14]
push esi
push edi
mov esi, dword [eax]
sar esi, cl
mov dword [ebp - 0x24], eax
mov edi, esi
sar edi, 1
mov eax, esi
sar eax, 2
mov dword [ebp - 0x1c], eax
lea eax, [edi*4]
mov dword [ebp - 0x18], eax
call fcn.0056f990
movss xmm6, dword [0x5f7b50]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x14]
cvtsi2ss xmm0, esi
sar eax, 1
mov dword [ebp - 0x2c], esp
mov dword [ebp - 0x10], 0
lea esi, [ecx + eax*4]
add eax, edi
divss xmm6, xmm0
mov edi, dword [ebp + 0xc]
sub ecx, 4
mov dword [ebp - 0x30], esi
lea edx, [ecx + eax*4]
mov ecx, esp
mov eax, dword [ebp + 0x10]
sar eax, 2
mov dword [ebp - 0xc], eax
movss dword [ebp - 0x34], xmm6
test eax, eax
jle 0x548384
mov esi, edi
mov eax, edx
sub esi, dword [ebp - 0x14]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], esi
mov esi, edi
sub esi, dword [ebp - 0x18]
sub esi, dword [ebp - 0x14]
mov dword [ebp - 8], esi
mov esi, dword [ebp - 0xc]
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x10], esi
mov esi, dword [ebp - 0x30]
jmp 0x548330
mov edi, dword [ebp - 0x18]
movss xmm0, dword [edx]
movss xmm1, dword [edi + esi]
mov edi, dword [ebp - 8]
mulss xmm1, dword [edi + edx]
mov edi, dword [ebp - 0x28]
mulss xmm0, dword [edi + esi]
addss xmm1, xmm0
movss dword [ecx], xmm1
movss xmm1, dword [esi]
mulss xmm1, dword [edi + esi]
add esi, 8
mov edi, dword [ebp - 8]
movss xmm0, dword [edi + edx]
sub edx, 8
mulss xmm0, dword [eax]
sub eax, 8
subss xmm1, xmm0
movss dword [ecx + 4], xmm1
add ecx, 8
sub dword [ebp - 0x20], 1
jne 0x548330
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 8]
jge 0x548429
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
cmp eax, 4
jl 0x5483fb
mov edi, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
sub eax, edi
sub eax, 4
shr eax, 2
inc eax
lea edi, [edi + eax*4]
mov dword [ebp - 0x10], edi
lea esp, [esp]
fld dword [edx]
fstp dword [ecx]
fld dword [esi]
fstp dword [ecx + 4]
fld dword [edx - 8]
fstp dword [ecx + 8]
fld dword [esi + 8]
fstp dword [ecx + 0xc]
fld dword [edx - 0x10]
fstp dword [ecx + 0x10]
fld dword [esi + 0x10]
fstp dword [ecx + 0x14]
fld dword [edx - 0x18]
sub edx, 0x20
fstp dword [ecx + 0x18]
fld dword [esi + 0x18]
add esi, 0x20
fstp dword [ecx + 0x1c]
add ecx, 0x20
sub eax, 1
jne 0x5483c0
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 8]
jge 0x548429
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
mov edi, dword [ebp - 8]
mov dword [ebp - 0x10], edi
nop
fld dword [edx]
sub edx, 8
fstp dword [ecx]
fld dword [esi]
add esi, 8
fstp dword [ecx + 4]
add ecx, 8
sub eax, 1
jne 0x548410
mov eax, edi
cmp eax, dword [ebp - 0x1c]
jge 0x5484b7
mov eax, esi
sub esi, dword [ebp + 0xc]
sub eax, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x10]
shl eax, 2
sub eax, edx
add eax, 0xfffffffc
add eax, dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x28]
lea ebx, [ebx]
movss xmm1, dword [edx]
mov edi, dword [ebp - 0xc]
movss xmm0, dword [eax]
add eax, 8
mulss xmm1, dword [edi + edx]
mov edi, dword [ebp + 0xc]
mulss xmm0, dword [edi]
mov edi, dword [ebp - 0x18]
subss xmm1, xmm0
movss dword [ecx], xmm1
movss xmm1, dword [edi + edx]
mov edi, dword [ebp + 0xc]
add dword [ebp + 0xc], 8
mulss xmm1, dword [edi]
movss xmm0, dword [esi + edi]
mov edi, dword [ebp - 0xc]
mulss xmm0, dword [edi + edx]
sub edx, 8
addss xmm1, xmm0
movss dword [ecx + 4], xmm1
add ecx, 8
sub dword [ebp - 0x20], 1
jne 0x548460
mov eax, dword [ebp - 0x24]
mov edi, esp
mov esi, dword [ebp - 0x1c]
mov ecx, dword [ebp + 0x14]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0xc], eax
test esi, esi
jle 0x548547
movss xmm7, dword [0x5f7d30]
mov dword [ebp - 8], esi
lea esp, [esp]
mov esi, dword [ebp - 0x28]
shl eax, cl
movss xmm1, dword [esi + eax*4]
mov eax, dword [ebp - 8]
movaps xmm2, xmm1
mulss xmm2, dword [edi]
shl eax, cl
mulss xmm1, dword [edi + 4]
dec dword [ebp - 8]
xorps xmm2, xmm7
movss xmm5, dword [esi + eax*4]
movaps xmm0, xmm5
mov eax, dword [ebp - 0xc]
mulss xmm5, dword [edi]
inc eax
mov esi, dword [ebp - 0x1c]
mulss xmm0, dword [edi + 4]
mov dword [ebp - 0xc], eax
subss xmm5, xmm1
subss xmm2, xmm0
movaps xmm0, xmm5
mulss xmm0, xmm6
addss xmm0, xmm2
mulss xmm2, xmm6
subss xmm5, xmm2
movss dword [edi], xmm0
movss dword [edi + 4], xmm5
add edi, 8
cmp eax, esi
jl 0x5484e0
mov edi, dword [ebp - 0x24]
push dword [ebp - 0x14]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [edi + ecx*4 + 8]
call fcn.00550810
mov edx, dword [ebp - 0x18]
add esp, 4
mov eax, dword [edi + 0x18]
add edx, 0xfffffffc
imul edx, dword [ebp + 0x18]
xor edi, edi
mov dword [ebp - 0x24], eax
add edx, dword [ebp + 8]
test esi, esi
jle 0x548615
movss xmm6, dword [ebp - 0x34]
mov eax, esi
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp + 0x14]
shl eax, cl
mov ecx, dword [ebp - 0x24]
mov esi, dword [ebp + 0x18]
movss xmm2, dword [ecx + eax*4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x14]
movss xmm3, dword [eax + 4]
mov eax, edi
shl eax, cl
movaps xmm0, xmm3
mov ecx, dword [ebp - 0x24]
inc edi
mulss xmm0, xmm2
movss xmm1, dword [ecx + eax*4]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + 8]
movss xmm5, dword [ecx]
add ecx, 8
movaps xmm4, xmm5
mov dword [ebp - 0x14], ecx
mulss xmm4, xmm1
lea ecx, [esi*8]
mulss xmm1, xmm3
mulss xmm5, xmm2
addss xmm4, xmm0
subss xmm5, xmm1
movaps xmm0, xmm4
mulss xmm4, xmm6
movaps xmm1, xmm5
addss xmm4, xmm5
mulss xmm1, xmm6
subss xmm0, xmm1
movss dword [eax], xmm0
add eax, ecx
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0xc]
movss dword [edx], xmm4
dec eax
sub edx, ecx
mov dword [ebp - 0xc], eax
cmp edi, dword [ebp - 0x1c]
jl 0x548583
lea esp, [ebp - 0x3c]
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0056eeb4
mov esp, ebp
pop ebp
ret