Function at 0x41d8b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x58
push esi
mov esi, dword [ebp + 8]
lea eax, [edx*4]
push edi
xor edi, edi
mov dword [ebp - 4], edx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x30], eax
test edx, edx
jle 0x41d9b7
lea eax, [edx + edx*2]
lea eax, [esi + eax*4]
mov dword [ebp - 0x3c], eax
lea ecx, [esi + edx*4]
lea eax, [esi + edx*8]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x3c]
nop word [eax + eax]
movss xmm3, dword [esi + edi*4]
movss xmm7, dword [ecx]
mov edx, dword [ebp - 0x1c]
addss xmm7, xmm3
subss xmm3, dword [ecx]
movss xmm2, dword [esi + edi*4 + 4]
movss xmm5, dword [ecx + 4]
movss xmm6, dword [edx]
addss xmm5, xmm2
subss xmm2, dword [ecx + 4]
movss xmm4, dword [edx + 4]
movss dword [ebp - 0x3c], xmm3
movaps xmm3, xmm6
addss xmm3, dword [eax]
subss xmm6, dword [eax]
movss dword [ebp - 0x38], xmm2
movaps xmm2, xmm4
addss xmm2, dword [eax + 4]
subss xmm4, dword [eax + 4]
movss xmm1, dword [ebp - 0x38]
movaps xmm0, xmm3
addss xmm0, xmm7
subss xmm7, xmm3
movss dword [esi + edi*4], xmm0
movaps xmm0, xmm2
addss xmm0, xmm5
subss xmm5, xmm2
movss dword [esi + edi*4 + 4], xmm0
add edi, 2
movss xmm0, dword [ebp - 0x3c]
subss xmm0, xmm4
movss dword [edx], xmm7
addss xmm4, dword [ebp - 0x3c]
movss dword [edx + 4], xmm5
add edx, 8
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 4]
movss dword [ecx], xmm0
movaps xmm0, xmm6
addss xmm0, xmm1
subss xmm1, xmm6
movss dword [ecx + 4], xmm0
add ecx, 8
movss dword [eax], xmm4
movss dword [eax + 4], xmm1
add eax, 8
cmp edi, edx
jl 0x41d8f0
mov eax, dword [ebp + 0xc]
movss xmm0, dword [eax + 8]
lea eax, [edx*4]
lea edi, [eax + edx]
movss dword [ebp - 0x34], xmm0
mov dword [ebp - 0x1c], edi
mov ecx, eax
cmp eax, edi
jge 0x41daee
lea eax, [eax + edx*2]
add eax, edx
lea edi, [esi + eax*4]
mov eax, dword [ebp - 0x1c]
lea eax, [esi + eax*4]
mov dword [ebp - 0x3c], eax
lea eax, [edx*4]
lea eax, [eax + edx*2]
lea eax, [esi + eax*4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x38]
movss xmm3, dword [esi + ecx*4]
movss xmm6, dword [eax]
movss xmm7, dword [edx]
addss xmm6, xmm3
subss xmm3, dword [eax]
movss xmm2, dword [esi + ecx*4 + 4]
movss xmm5, dword [edx + 4]
movaps xmm4, xmm2
subss xmm2, dword [eax + 4]
addss xmm4, dword [eax + 4]
movss dword [ebp - 0x3c], xmm3
movaps xmm3, xmm7
addss xmm3, dword [edi]
subss xmm7, dword [edi]
movss dword [ebp - 0x38], xmm2
movaps xmm2, xmm5
addss xmm2, dword [edi + 4]
subss xmm5, dword [edi + 4]
movaps xmm0, xmm3
addss xmm0, xmm6
movaps xmm1, xmm7
addss xmm1, dword [ebp - 0x38]
subss xmm7, dword [ebp - 0x38]
subss xmm6, xmm3
movss dword [esi + ecx*4], xmm0
movaps xmm0, xmm2
addss xmm0, xmm4
subss xmm2, xmm4
movss dword [esi + ecx*4 + 4], xmm0
add ecx, 2
movss dword [edx], xmm2
movss xmm2, dword [ebp - 0x3c]
subss xmm2, xmm5
movss dword [edx + 4], xmm6
movss xmm6, dword [ebp - 0x34]
add edx, 8
addss xmm5, dword [ebp - 0x3c]
movaps xmm0, xmm2
subss xmm0, xmm1
addss xmm1, xmm2
mulss xmm0, xmm6
mulss xmm1, xmm6
movss dword [eax], xmm0
movaps xmm0, xmm7
subss xmm0, xmm5
addss xmm7, xmm5
movss dword [eax + 4], xmm1
add eax, 8
mulss xmm0, xmm6
mulss xmm7, xmm6
movss dword [edi], xmm0
movss dword [edi + 4], xmm7
add edi, 8
cmp ecx, dword [ebp - 0x1c]
jl 0x41da02
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0x30]
add eax, eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 8], eax
cmp eax, dword [ebp - 0x40]
jge 0x41df15
lea edi, [eax*4]
mov dword [ebp - 0xc], edx
lea ecx, [edx*4]
mov dword [ebp - 0x58], edi
add ecx, eax
lea edi, [edx*4]
add eax, edx
mov dword [ebp - 0x18], ecx
lea eax, [esi + eax*4]
mov dword [ebp - 0x14], eax
lea eax, [ecx + edx]
lea eax, [esi + eax*4]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 0xc]
add eax, 0xc
sub dword [ebp - 0xc], edi
mov edi, dword [ebp - 8]
nop dword [eax]
mov esi, dword [ebp + 0xc]
add eax, 0x10
add esi, 8
mov dword [ebp - 0x38], eax
mov dword [ebp + 0xc], esi
mov dword [ebp - 0x44], edi
movss xmm3, dword [eax - 0xc]
movss xmm0, dword [esi + 4]
movaps xmm5, xmm3
movss xmm4, dword [eax - 8]
movaps xmm1, xmm0
movss xmm2, dword [esi]
addss xmm1, xmm0
mov esi, dword [ebp - 0xc]
movss dword [ebp - 0x34], xmm0
add esi, ecx
mov dword [ebp - 0x2c], esi
cmp edi, esi
mov esi, dword [ebp + 8]
movaps xmm0, xmm1
movss dword [ebp - 0x10], xmm2
mulss xmm0, xmm4
mulss xmm1, xmm3
subss xmm5, xmm0
movss dword [ebp - 0x24], xmm3
movss dword [ebp - 0x20], xmm4
subss xmm1, xmm4
movss dword [ebp - 0x50], xmm5
movss dword [ebp - 0x54], xmm1
jge 0x41dd28
lea eax, [edi + edx*2]
mov ecx, edi
add eax, edx
lea eax, [esi + eax*4]
mov dword [ebp - 0x48], eax
lea eax, [edi + edx*2]
mov edi, dword [ebp - 0x48]
lea eax, [esi + eax*4]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 0x28], eax
nop
movss xmm3, dword [esi + ecx*4 + 4]
movss xmm4, dword [edx + 4]
mov eax, dword [ebp - 0x28]
addss xmm4, xmm3
subss xmm3, dword [edx + 4]
movss xmm2, dword [esi + ecx*4]
movss xmm5, dword [edx]
movss xmm6, dword [eax]
addss xmm5, xmm2
subss xmm2, dword [edx]
movss xmm7, dword [eax + 4]
movss xmm1, dword [ebp - 0x10]
movss dword [ebp - 0x48], xmm3
movaps xmm3, xmm6
addss xmm3, dword [edi]
subss xmm6, dword [edi]
movss dword [ebp - 0x4c], xmm2
movss xmm2, dword [edi + 4]
addss xmm2, xmm7
subss xmm7, dword [edi + 4]
movaps xmm0, xmm3
addss xmm0, xmm5
subss xmm5, xmm3
movss xmm3, dword [ebp - 0x4c]
subss xmm3, xmm7
addss xmm7, dword [ebp - 0x4c]
movss dword [esi + ecx*4], xmm0
movaps xmm0, xmm2
addss xmm0, xmm4
mulss xmm1, xmm5
subss xmm4, xmm2
movaps xmm2, xmm6
movss dword [esi + ecx*4 + 4], xmm0
add ecx, 2
movss xmm0, dword [ebp - 0x34]
mulss xmm0, xmm4
subss xmm1, xmm0
movss xmm0, dword [ebp - 0x34]
mulss xmm0, xmm5
movss xmm5, dword [ebp - 0x48]
addss xmm2, xmm5
movss dword [eax], xmm1
subss xmm5, xmm6
movss xmm1, dword [ebp - 0x10]
mulss xmm1, xmm4
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x20]
mulss xmm0, xmm2
movss dword [eax + 4], xmm1
add eax, 8
movss xmm1, dword [ebp - 0x24]
mulss xmm1, xmm3
mov dword [ebp - 0x28], eax
subss xmm1, xmm0
movss xmm0, dword [ebp - 0x24]
mulss xmm0, xmm2
movss dword [edx], xmm1
movss xmm1, dword [ebp - 0x20]
mulss xmm1, xmm3
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x54]
mulss xmm0, xmm5
movss dword [edx + 4], xmm1
add edx, 8
movss xmm1, dword [ebp - 0x50]
mulss xmm1, xmm7
subss xmm1, xmm0
movss xmm0, dword [ebp - 0x54]
mulss xmm0, xmm7
movss dword [edi], xmm1
movss xmm1, dword [ebp - 0x50]
mulss xmm1, xmm5
addss xmm1, xmm0
movss dword [edi + 4], xmm1
add edi, 8
cmp ecx, dword [ebp - 0x2c]
jl 0x41dbd0
movss xmm2, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0x38]
movss xmm3, dword [eax - 4]
movaps xmm1, xmm2
movss xmm4, dword [eax]
addss xmm1, xmm2
mov edx, dword [ebp - 0x2c]
movaps xmm2, xmm3
add edx, dword [ebp - 0x30]
mov dword [ebp - 0x2c], edx
cmp ecx, edx
mov edx, dword [ebp - 4]
movaps xmm0, xmm1
movss dword [ebp - 0x24], xmm3
mulss xmm0, xmm4
mov dword [ebp - 0x54], ecx
mulss xmm1, xmm3
subss xmm2, xmm0
movss dword [ebp - 0x28], xmm4
subss xmm1, xmm4
movss dword [ebp - 0x44], xmm2
movss dword [ebp - 0x20], xmm1
jge 0x41def7
mov edi, dword [ebp - 0x1c]
lea eax, [ecx + edx*2]
add eax, edx
lea eax, [esi + eax*4]
mov dword [ebp - 0x50], eax
lea eax, [ecx + edx*2]
mov edx, dword [ebp - 0x50]
lea eax, [esi + eax*4]
mov dword [ebp - 0x48], eax
mov eax, ecx
mov ecx, dword [ebp - 0x48]
nop dword [eax + eax]
movss xmm3, dword [esi + eax*4 + 4]
movss xmm4, dword [edi + 4]
movss xmm6, dword [ecx]
addss xmm4, xmm3
subss xmm3, dword [edi + 4]
movss xmm2, dword [esi + eax*4]
movss xmm5, dword [edi]
movss xmm7, dword [ecx + 4]
addss xmm5, xmm2
subss xmm2, dword [edi]
movss xmm1, dword [ebp - 0x34]
movss dword [ebp - 0x50], xmm3
movaps xmm3, xmm6
addss xmm3, dword [edx]
subss xmm6, dword [edx]
movss dword [ebp - 0x54], xmm2
movss xmm2, dword [edx + 4]
addss xmm2, xmm7
subss xmm7, dword [edx + 4]
movaps xmm0, xmm3
addss xmm0, xmm5
subss xmm5, xmm3
movss xmm3, dword [ebp - 0x54]
subss xmm3, xmm7
addss xmm7, dword [ebp - 0x54]
movss dword [esi + eax*4], xmm0
movaps xmm0, xmm2
addss xmm0, xmm4
mulss xmm1, xmm5
subss xmm4, xmm2
movaps xmm2, xmm6
xorps xmm1, xmmword [0x44cba0]
movss dword [esi + eax*4 + 4], xmm0
add eax, 2
movss xmm0, dword [ebp - 0x10]
mulss xmm0, xmm4
subss xmm1, xmm0
movss xmm0, dword [ebp - 0x34]
mulss xmm0, xmm4
movss dword [ecx], xmm1
movss xmm1, dword [ebp - 0x10]
mulss xmm1, xmm5
movss xmm5, dword [ebp - 0x50]
addss xmm2, xmm5
subss xmm1, xmm0
movss xmm0, dword [ebp - 0x28]
subss xmm5, xmm6
mulss xmm0, xmm2
movss dword [ecx + 4], xmm1
add ecx, 8
movss xmm1, dword [ebp - 0x24]
mulss xmm1, xmm3
subss xmm1, xmm0
movss xmm0, dword [ebp - 0x24]
mulss xmm0, xmm2
movss dword [edi], xmm1
movss xmm1, dword [ebp - 0x28]
mulss xmm1, xmm3
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x20]
mulss xmm0, xmm5
movss dword [edi + 4], xmm1
add edi, 8
movss xmm1, dword [ebp - 0x44]
mulss xmm1, xmm7
subss xmm1, xmm0
movss xmm0, dword [ebp - 0x20]
mulss xmm0, xmm7
movss dword [edx], xmm1
movss xmm1, dword [ebp - 0x44]
mulss xmm1, xmm5
addss xmm1, xmm0
movss dword [edx + 4], xmm1
add edx, 8
cmp eax, dword [ebp - 0x2c]
jl 0x41dda0
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x18]
mov edi, dword [ebp - 8]
mov eax, dword [ebp - 0x38]
add edi, dword [ebp - 0x3c]
mov esi, dword [ebp - 0x58]
add ecx, dword [ebp - 0x3c]
add dword [ebp - 0x14], esi
add dword [ebp - 0x1c], esi
mov dword [ebp - 8], edi
mov dword [ebp - 0x18], ecx
cmp edi, dword [ebp - 0x40]
jl 0x41db40
pop edi
pop esi
mov esp, ebp
pop ebp
ret