Function at 0x40bb34
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, ecx
xor ecx, ecx
push esi
push ebx
sub esp, 0x11c
mov dword [ebp - 0x54], edx
shl edx, 2
cmp ecx, dword [ebp - 0x54]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x60], edx
jge 0x40bbc1
mov ebx, dword [ebp - 0x54]
mov eax, edi
lea edx, [ebx + ebx*2]
nop
nop
nop
movaps xmm6, xmmword [edi + edx*4]
add ecx, 4
mov esi, dword [ebp - 0x54]
movaps xmm2, xmmword [eax]
movaps xmm0, xmmword [eax + esi*8]
movaps xmm7, xmmword [eax + esi*4]
movaps xmm3, xmm2
movaps xmm4, xmm0
subps xmm0, xmm6
addps xmm3, xmm7
shufps xmm0, xmm0, 0xb1
xorps xmm0, xmmword [0x7d5360]
subps xmm2, xmm7
addps xmm4, xmm6
movaps xmm5, xmm3
movaps xmm1, xmm2
addps xmm5, xmm4
movaps xmmword [eax], xmm5
subps xmm3, xmm4
addps xmm1, xmm0
movaps xmmword [eax + esi*4], xmm1
subps xmm2, xmm0
movaps xmmword [eax + esi*8], xmm3
add eax, 0x10
movaps xmmword [edi + edx*4], xmm2
add edx, 4
cmp ecx, esi
jl 0x40bb64
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x54]
mov eax, dword [edx + 8]
add ebx, ecx
cmp ebx, ecx
mov dword [ebp - 0x1c], eax
movss xmm6, dword [ebp - 0x1c]
shufps xmm6, xmm6, 0
jle 0x40bc95
mov esi, dword [ebp - 0x54]
lea edx, [edi + ecx*4]
lea eax, [esi + esi*2]
add eax, ecx
nop
nop
nop
nop
nop
nop
movaps xmm7, xmmword [edx]
add ecx, 4
mov esi, dword [ebp - 0x54]
movaps xmm1, xmmword [edi + eax*4]
movaps xmm5, xmm7
movaps xmm3, xmmword [edx + esi*4]
movaps xmm2, xmmword [edx + esi*8]
addps xmm5, xmm3
subps xmm7, xmm3
movaps xmm4, xmm2
movaps xmm3, xmm5
addps xmm4, xmm1
movaps xmm0, xmm5
shufps xmm3, xmm4, 0xd8
shufps xmm0, xmm4, 0x8d
shufps xmm0, xmm0, 0xd8
shufps xmm3, xmm3, 0x72
addps xmm5, xmm4
movaps xmmword [edx], xmm5
subps xmm3, xmm0
subps xmm2, xmm1
movaps xmmword [edx + esi*8], xmm3
movaps xmm1, xmm7
shufps xmm1, xmm7, 0xa0
movaps xmm3, xmmword [0x7d5360]
shufps xmm7, xmm7, 0xf5
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xa0
movaps xmm5, xmm1
shufps xmm2, xmm2, 0xf5
movaps xmm4, xmm7
subps xmm5, xmm2
addps xmm4, xmm0
addps xmm2, xmm1
subps xmm0, xmm7
xorps xmm4, xmm3
xorps xmm2, xmm3
addps xmm5, xmm4
addps xmm0, xmm2
mulps xmm5, xmm6
mulps xmm0, xmm6
movaps xmmword [edx + esi*4], xmm5
add edx, 0x10
movaps xmmword [edi + eax*4], xmm0
add eax, 4
cmp ebx, ecx
jg 0x40bbf4
mov dword [ebp - 0x5c], 0
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x50]
add eax, eax
cmp eax, ecx
mov dword [ebp - 0x9c], eax
mov dword [ebp - 0x58], eax
jge 0x40c0d7
mov ecx, dword [ebp - 0x54]
mov ebx, dword [ebp - 0x54]
mov edx, dword [ebp + 8]
lea esi, [ecx + ecx*2]
add eax, ebx
prefetcht0 byte [edx + 4]
mov dword [ebp - 0xa4], esi
prefetcht0 byte [edx + 0x24]
prefetcht0 byte [edx + 0x44]
mov dword [ebp - 0xa8], eax
prefetcht0 byte [edx + 0x64]
prefetcht0 byte [edx + 0x84]
prefetcht0 byte [edx + 0xa4]
nop
nop
nop
nop
nop
nop
nop
add dword [ebp - 0x5c], 2
mov ebx, dword [ebp + 8]
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x5c]
add eax, eax
prefetcht0 byte [ebx + edx*4 + 0xc4]
movss xmm6, dword [ebx + eax*4 + 4]
fld dword [ebx + edx*4 + 4]
fld dword [ebx + eax*4]
fld dword [ebx + edx*4]
movss dword [ebp - 0x11c], xmm6
fld dword [ebp - 0x11c]
fxch st(3)
movss dword [ebp - 0x24], xmm6
fst dword [ebp - 0x11c]
fmul st(3), st(0)
fxch st(2)
movss xmm1, dword [ebp - 0x24]
movss xmm7, dword [ebp - 0x11c]
fst dword [ebp - 0x11c]
fxch st(3)
movss xmm5, dword [ebp - 0x11c]
fadd st(0), st(0)
fxch st(3)
shufps xmm1, xmm1, 0
fst dword [ebp - 0x20]
movaps xmmword [ebp - 0xc8], xmm1
fsubrp st(3)
mulss xmm7, xmm5
fst dword [ebp - 0x28]
fxch st(2)
movss xmm3, dword [ebp - 0x20]
addss xmm7, xmm7
subss xmm7, xmm6
fstp dword [ebp - 0x30]
shufps xmm3, xmm3, 0
movss xmm2, dword [ebp - 0x30]
fst dword [ebp - 0x2c]
movss xmm4, dword [ebp - 0x28]
movss xmm0, dword [ebp - 0x2c]
shufps xmm2, xmm2, 0
movaps xmmword [ebp - 0x98], xmm2
shufps xmm4, xmm4, 0
shufps xmm0, xmm0, 0
movaps xmm2, xmmword [0x7d5360]
movaps xmm5, xmmword [ebp - 0xc8]
movss dword [ebp - 0x34], xmm7
movss xmm7, dword [ebp - 0x34]
mov dword [ebp - 0x120], eax
xorps xmm5, xmm2
movaps xmmword [ebp - 0x78], xmm3
shufps xmm7, xmm7, 0
xorps xmm7, xmm2
movaps xmmword [ebp - 0x88], xmm4
movaps xmmword [ebp - 0xb8], xmm0
movaps xmmword [ebp - 0xc8], xmm5
mov ecx, dword [ebp - 0x58]
movaps xmm6, xmmword [ebp - 0xb8]
cmp dword [ebp - 0xa8], ecx
xorps xmm6, xmm2
movaps xmmword [ebp - 0xb8], xmm6
jle 0x40bee6
mov esi, dword [ebp - 0xa4]
lea eax, [edi + ecx*4]
lea edx, [esi + ecx]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movaps xmm3, xmmword [eax]
add ecx, 4
mov ebx, dword [ebp - 0x54]
movaps xmm1, xmmword [edi + edx*4]
movaps xmm5, xmm3
movaps xmm4, xmmword [eax + ebx*8]
movaps xmm0, xmmword [eax + ebx*4]
movaps xmm2, xmm4
addps xmm2, xmm1
addps xmm5, xmm0
subps xmm3, xmm0
movaps xmm6, xmm2
movaps xmm0, xmm5
subps xmm4, xmm1
shufps xmm6, xmm2, 0xb1
shufps xmm0, xmm5, 0xb1
movaps xmm1, xmm5
subps xmm1, xmm2
mulps xmm1, xmmword [ebp - 0x88]
subps xmm0, xmm6
addps xmm5, xmm2
mulps xmm0, xmmword [ebp - 0xb8]
movaps xmmword [eax], xmm5
movaps xmm6, xmm3
shufps xmm6, xmm3, 0xb1
movaps xmm2, xmm6
addps xmm1, xmm0
movaps xmm0, xmm3
movaps xmmword [eax + ebx*8], xmm1
movaps xmm1, xmm4
shufps xmm1, xmm4, 0xb1
movaps xmm5, xmmword [0x7d5360]
xorps xmm1, xmm5
xorps xmm4, xmm5
addps xmm0, xmm1
subps xmm2, xmm4
subps xmm3, xmm1
mulps xmm0, xmmword [ebp - 0x78]
addps xmm6, xmm4
mulps xmm6, xmm7
mulps xmm2, xmmword [ebp - 0xc8]
mulps xmm3, xmmword [ebp - 0x98]
addps xmm0, xmm2
addps xmm3, xmm6
movaps xmmword [eax + ebx*4], xmm0
add eax, 0x10
movaps xmmword [edi + edx*4], xmm3
add edx, 4
cmp dword [ebp - 0xa8], ecx
jg 0x40be24
movaps xmm2, xmmword [0x7d5360]
mov esi, dword [ebp - 0x120]
mov edx, dword [ebp + 8]
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x54]
movss xmm4, dword [edx + esi*4 + 0xc]
add ebx, eax
fld dword [edx + esi*4 + 8]
lea esi, [ebx + ecx]
cmp esi, ebx
movss dword [ebp - 0x11c], xmm4
fld dword [ebp - 0x11c]
fxch st(3)
fst dword [ebp - 0x11c]
movss xmm7, dword [ebp - 0x11c]
fmul st(3), st(0)
fxch st(1)
movss dword [ebp - 0x3c], xmm4
fst dword [ebp - 0x11c]
fxch st(1)
movss xmm5, dword [ebp - 0x11c]
fstp dword [ebp - 0x40]
fxch st(2)
fadd st(0), st(0)
fxch st(2)
fst dword [ebp - 0x38]
mulss xmm7, xmm5
fsubrp st(2)
movss xmm0, dword [ebp - 0x3c]
addss xmm7, xmm7
subss xmm7, xmm4
movss xmm1, dword [ebp - 0x40]
movss xmm3, dword [ebp - 0x38]
shufps xmm0, xmm0, 0
movaps xmmword [ebp - 0x108], xmm0
shufps xmm1, xmm1, 0
shufps xmm3, xmm3, 0
movaps xmmword [ebp - 0xe8], xmm1
fstp dword [ebp - 0x44]
fstp dword [ebp - 0x48]
movss dword [ebp - 0x4c], xmm7
movaps xmm4, xmmword [ebp - 0x108]
movaps xmmword [ebp - 0xf8], xmm3
movss xmm6, dword [ebp - 0x44]
movaps xmm3, xmmword [ebp - 0xe8]
xorps xmm4, xmm2
movss xmm5, dword [ebp - 0x48]
shufps xmm6, xmm6, 0
xorps xmm3, xmm2
movss xmm7, dword [ebp - 0x4c]
shufps xmm5, xmm5, 0
movaps xmmword [ebp - 0xd8], xmm6
movaps xmmword [ebp - 0x118], xmm5
shufps xmm7, xmm7, 0
xorps xmm7, xmm2
movaps xmmword [ebp - 0x108], xmm4
movaps xmmword [ebp - 0xe8], xmm3
mov dword [ebp - 0xa0], esi
jg 0x40bffa
jmp 0x40c0bc
mov ecx, dword [ebp - 0x54]
lea esi, [ebx + ecx]
movaps xmm1, xmmword [edi + esi*4]
mov edx, dword [ebp - 0x54]
lea eax, [esi + edx]
lea ecx, [eax + edx]
lea edx, [edi + ebx*4]
movaps xmm0, xmmword [edi + ecx*4]
lea eax, [edi + eax*4]
movaps xmm3, xmmword [edx]
add ebx, 4
movaps xmm4, xmmword [eax]
movaps xmm5, xmm3
addps xmm5, xmm1
movaps xmm2, xmm4
subps xmm4, xmm0
addps xmm2, xmm0
movaps xmm6, xmm2
movaps xmm0, xmm5
subps xmm3, xmm1
shufps xmm6, xmm2, 0xb1
shufps xmm0, xmm5, 0xb1
movaps xmm1, xmm5
subps xmm1, xmm2
subps xmm0, xmm6
addps xmm5, xmm2
mulps xmm1, xmmword [ebp - 0xd8]
movaps xmm6, xmm3
mulps xmm0, xmmword [ebp - 0xe8]
movaps xmmword [edx], xmm5
movaps xmm5, xmm3
shufps xmm5, xmm3, 0xb1
subps xmm0, xmm1
movaps xmm1, xmm4
shufps xmm1, xmm4, 0xb1
movaps xmmword [eax], xmm0
movaps xmm2, xmm5
movaps xmm0, xmmword [0x7d5360]
cmp dword [ebp - 0xa0], ebx
xorps xmm1, xmm0
xorps xmm4, xmm0
addps xmm6, xmm1
subps xmm2, xmm4
subps xmm3, xmm1
mulps xmm6, xmmword [ebp - 0xf8]
addps xmm5, xmm4
mulps xmm5, xmm7
mulps xmm2, xmmword [ebp - 0x108]
mulps xmm3, xmmword [ebp - 0x118]
addps xmm6, xmm2
addps xmm3, xmm5
movaps xmmword [edi + esi*4], xmm6
movaps xmmword [edi + ecx*4], xmm3
jg 0x40bff4
mov esi, dword [ebp - 0x9c]
mov ebx, dword [ebp - 0x50]
add dword [ebp - 0x58], esi
add dword [ebp - 0xa8], esi
cmp dword [ebp - 0x58], ebx
jl 0x40bcf4
add esp, 0x11c
pop ebx
pop esi
pop edi
pop ebp
ret