Function at 0x4310e0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x58
push esi
mov esi, edx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], esi
push edi
lea edi, [esi*4]
mov dword [ebp - 0x14], edi
test esi, esi
jle 0x4311f9
mov edx, dword [ebx + 8]
mov ecx, edx
lea eax, [edx + 0x10]
lea eax, [eax + esi*8]
mov dword [ebp - 0x30], eax
lea eax, [esi + esi*2]
lea edi, [edx + eax*4]
lea eax, [edx + esi*4]
lea edx, [esi - 1]
shr edx, 3
inc edx
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x30]
nop dword [eax]
movups xmm4, xmmword [edx - 0x10]
movups xmm2, xmmword [edi]
movups xmm5, xmmword [ecx]
addps xmm2, xmm4
subps xmm4, xmmword [edi]
movups xmm6, xmmword [eax]
movups xmm7, xmmword [ecx + 0x10]
addps xmm6, xmm5
subps xmm5, xmmword [eax]
movups xmm3, xmmword [eax + 0x10]
movaps xmm1, xmm2
shufps xmm4, xmm4, 0xb1
xorps xmm4, xmmword [0x4765f0]
movaps xmm0, xmm4
addps xmm1, xmm6
addps xmm0, xmm5
subps xmm5, xmm4
movaps xmm4, xmm7
subps xmm6, xmm2
addps xmm4, xmm3
subps xmm7, xmm3
movaps xmmword [ebp - 0x50], xmm5
movups xmm5, xmmword [edx]
movups xmmword [ecx], xmm1
movaps xmm2, xmm5
movups xmm1, xmmword [edi + 0x10]
movups xmmword [eax], xmm0
addps xmm2, xmm1
movaps xmm0, xmmword [ebp - 0x50]
subps xmm5, xmm1
movups xmmword [edx - 0x10], xmm6
movups xmmword [edi], xmm0
movaps xmm0, xmm4
addps xmm0, xmm2
shufps xmm5, xmm5, 0xb1
subps xmm4, xmm2
xorps xmm5, xmmword [0x4765f0]
movups xmmword [ecx + 0x10], xmm0
movaps xmm0, xmm7
addps xmm0, xmm5
add ecx, 0x20
subps xmm7, xmm5
movups xmmword [eax + 0x10], xmm0
add eax, 0x20
movups xmmword [edx], xmm4
add edx, 0x20
movups xmmword [edi + 0x10], xmm7
add edi, 0x20
sub dword [ebp - 0x28], 1
jne 0x431140
mov eax, esi
lea edi, [esi*4]
jmp 0x4311fb
mov eax, edx
movaps xmm0, xmmword [0x507fe0]
mov ecx, 2
mov edx, dword [ebx + 8]
add eax, ecx
lea ecx, [edi + esi]
movaps xmmword [ebp - 0x50], xmm0
cmp edi, ecx
jge 0x431385
lea eax, [edi + eax*2]
lea eax, [edx + eax*4]
mov dword [ebp - 0xc], eax
lea ecx, [edi + esi]
lea eax, [edi + esi*2]
add eax, esi
lea eax, [edx + eax*4]
mov dword [ebp - 0x28], eax
lea eax, [edx + ecx*4]
mov dword [ebp - 0x30], eax
lea ecx, [edx + edi*4]
lea eax, [esi - 1]
mov esi, dword [ebp - 0x30]
shr eax, 3
inc eax
mov edx, dword [ebp - 0xc]
movups xmm4, xmmword [ecx]
movups xmm2, xmmword [esi]
addps xmm2, xmm4
mov edi, dword [ebp - 0xc]
movups xmm7, xmmword [edx - 0x10]
mov edx, dword [ebp - 0x28]
subps xmm4, xmmword [esi]
movaps xmm1, xmm2
movaps xmm0, xmm2
movups xmm3, xmmword [edx]
addps xmm3, xmm7
subps xmm7, xmmword [edx]
shufps xmm1, xmm3, 0xd8
shufps xmm0, xmm3, 0x8d
addps xmm3, xmm2
shufps xmm1, xmm1, 0x72
shufps xmm0, xmm0, 0xd8
subps xmm1, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xa0
movups xmmword [ecx], xmm3
movaps xmm3, xmm7
shufps xmm3, xmm7, 0xa0
shufps xmm4, xmm4, 0xf5
movups xmmword [edi - 0x10], xmm1
movaps xmm2, xmm4
movups xmm6, xmmword [ecx + 0x10]
addps xmm2, xmm3
movups xmm5, xmmword [edi]
subps xmm3, xmm4
movups xmm4, xmmword [esi + 0x10]
movaps xmm1, xmm0
shufps xmm7, xmm7, 0xf5
subps xmm1, xmm7
xorps xmm2, xmmword [0x4765f0]
addps xmm7, xmm0
movups xmm0, xmmword [edx + 0x10]
addps xmm2, xmm1
movaps xmm1, xmm6
xorps xmm7, xmmword [0x4765f0]
addps xmm1, xmm4
addps xmm7, xmm3
movaps xmm3, xmm0
addps xmm3, xmm5
subps xmm5, xmm0
mulps xmm2, xmmword [ebp - 0x50]
subps xmm6, xmm4
mulps xmm7, xmmword [ebp - 0x50]
movaps xmm0, xmm1
shufps xmm0, xmm3, 0x8d
movups xmmword [esi], xmm2
movaps xmm4, xmm6
movaps xmm2, xmm1
shufps xmm0, xmm0, 0xd8
shufps xmm2, xmm3, 0xd8
addps xmm3, xmm1
shufps xmm2, xmm2, 0x72
movaps xmm1, xmm5
subps xmm2, xmm0
movups xmmword [edx], xmm7
shufps xmm1, xmm5, 0xa0
shufps xmm4, xmm6, 0xa0
movups xmmword [ecx + 0x10], xmm3
movaps xmm3, xmm1
shufps xmm6, xmm6, 0xf5
movups xmmword [edi], xmm2
addps xmm3, xmm6
shufps xmm5, xmm5, 0xf5
subps xmm1, xmm6
movaps xmm2, xmm4
subps xmm4, xmm5
addps xmm2, xmm5
xorps xmm3, xmmword [0x4765f0]
addps xmm3, xmm4
xorps xmm2, xmmword [0x4765f0]
addps xmm2, xmm1
mulps xmm3, xmmword [ebp - 0x50]
mulps xmm2, xmmword [ebp - 0x50]
movups xmmword [esi + 0x10], xmm3
movups xmmword [edx + 0x10], xmm2
add edi, 0x20
add edx, 0x20
add ecx, 0x20
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 0x14]
add esi, 0x20
mov dword [ebp - 0x28], edx
mov edx, dword [ebx + 8]
sub eax, 1
jne 0x431245
lea ecx, [edi + edi]
mov dword [ebp - 4], ecx
cmp ecx, dword [ebp - 0x34]
jge 0x4315e9
add edi, ecx
lea esi, [edx + ecx*4]
mov dword [ebp - 0x18], esi
mov eax, 0x516530
mov dword [ebp - 0x20], edi
mov dword [ebp - 0xc], eax
lea esi, [edx + edi*4]
mov dword [ebp - 0x24], esi
mov esi, dword [ebp - 0x10]
add ecx, esi
lea ecx, [edx + ecx*4]
mov dword [ebp - 0x1c], ecx
lea ecx, [edi + esi]
lea ecx, [edx + ecx*4]
mov edx, esi
mov dword [ebp - 0x28], ecx
lea ecx, [esi*4]
sub edx, ecx
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x38], edx
add edx, edi
cmp ecx, edx
jge 0x4314bf
mov eax, dword [ebx + 8]
lea ecx, [ecx + esi*2]
sub edx, dword [ebp - 4]
add ecx, esi
mov edi, dword [ebp - 0x18]
dec edx
shr edx, 2
inc edx
lea ecx, [eax + ecx*4]
mov dword [ebp - 0x30], edx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp - 4]
lea ecx, [ecx + esi*2]
mov esi, eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0xc]
lea ecx, [esi + ecx*4]
nop dword [eax]
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 8]
movups xmm5, xmmword [edi]
movups xmm4, xmmword [ecx]
movups xmm3, xmmword [esi]
movups xmm2, xmmword [edx]
addps xmm3, xmm5
subps xmm5, xmmword [esi]
addps xmm2, xmm4
add dword [ebp - 8], 0x10
subps xmm4, xmmword [edx]
movaps xmm1, xmm3
subps xmm1, xmm2
movaps xmm0, xmm2
addps xmm0, xmm3
shufps xmm2, xmm2, 0xb1
shufps xmm3, xmm3, 0xb1
subps xmm3, xmm2
movaps xmm2, xmm4
shufps xmm2, xmm4, 0xb1
mulps xmm1, xmmword [eax - 0x10]
mulps xmm3, xmmword [eax]
movups xmmword [edi], xmm0
movaps xmm0, xmm5
add edi, 0x10
addps xmm3, xmm1
movups xmmword [ecx], xmm3
movaps xmm3, xmm5
xorps xmm4, xmmword [0x4765f0]
add ecx, 0x10
xorps xmm2, xmmword [0x4765f0]
movaps xmm1, xmm4
shufps xmm3, xmm5, 0xb1
subps xmm0, xmm2
addps xmm1, xmm3
subps xmm3, xmm4
addps xmm5, xmm2
mulps xmm0, xmmword [eax + 0x10]
mulps xmm3, xmmword [eax - 0x20]
mulps xmm5, xmmword [eax - 0x30]
mulps xmm1, xmmword [eax + 0x20]
addps xmm3, xmm5
addps xmm1, xmm0
movups xmmword [esi], xmm3
add esi, 0x10
sub dword [ebp - 0x30], 1
mov dword [ebp - 0x2c], esi
mov esi, dword [ebp - 0x10]
movups xmmword [edx], xmm1
jne 0x431410
mov edi, dword [ebp - 0x20]
lea ecx, [edi + esi]
cmp edi, ecx
jge 0x4315a6
mov eax, dword [ebx + 8]
lea ecx, [edi + esi*2]
mov edx, dword [ebp - 0x24]
add ecx, esi
lea ecx, [eax + ecx*4]
mov dword [ebp - 0x30], ecx
lea ecx, [edi + esi*2]
mov edi, dword [ebp - 0x28]
lea ecx, [eax + ecx*4]
lea eax, [esi - 1]
mov esi, eax
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
shr esi, 2
inc esi
mov dword [ebp - 8], esi
mov esi, dword [ebp - 0x30]
nop dword [eax]
movups xmm6, xmmword [edx]
movups xmm5, xmmword [ecx]
movups xmm4, xmmword [edi]
movups xmm2, xmmword [esi]
addps xmm4, xmm6
subps xmm6, xmmword [edi]
addps xmm2, xmm5
subps xmm5, xmmword [esi]
movaps xmm1, xmm4
movaps xmm3, xmm6
subps xmm1, xmm2
shufps xmm3, xmm6, 0xb1
movaps xmm0, xmm2
shufps xmm2, xmm2, 0xb1
addps xmm0, xmm4
shufps xmm4, xmm4, 0xb1
subps xmm4, xmm2
movaps xmm2, xmm6
mulps xmm1, xmmword [eax + 0x60]
mulps xmm4, xmmword [eax + 0x50]
movups xmmword [edx], xmm0
add edx, 0x10
subps xmm4, xmm1
movaps xmm1, xmm5
shufps xmm1, xmm5, 0xb1
movups xmmword [ecx], xmm4
add ecx, 0x10
xorps xmm5, xmmword [0x4765f0]
xorps xmm1, xmmword [0x4765f0]
movaps xmm0, xmm5
addps xmm0, xmm3
addps xmm6, xmm1
subps xmm2, xmm1
subps xmm3, xmm5
mulps xmm0, xmmword [eax + 0x80]
mulps xmm6, xmmword [eax + 0x30]
mulps xmm3, xmmword [eax + 0x40]
mulps xmm2, xmmword [eax + 0x70]
addps xmm6, xmm3
addps xmm2, xmm0
movups xmmword [edi], xmm6
add edi, 0x10
movups xmmword [esi], xmm2
add esi, 0x10
sub dword [ebp - 8], 1
jne 0x431500
mov edi, dword [ebp - 0x20]
mov esi, dword [ebp - 0x14]
add eax, 0xc0
mov ecx, dword [ebp - 4]
mov dword [ebp - 0xc], eax
mov eax, esi
lea ecx, [ecx + esi*2]
lea esi, [eax + eax]
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 0xc]
lea edx, [esi*4]
add dword [ebp - 0x18], edx
add edi, esi
add dword [ebp - 0x1c], edx
add dword [ebp - 0x24], edx
add dword [ebp - 0x28], edx
mov esi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x20], edi
cmp ecx, dword [ebp - 0x34]
jl 0x4313d2
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret