Function at 0x10311cd0
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
mov ebp, esp
sub esp, 0x50
and esp, 0xfffffff0
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
lea ebx, [0x1030e590]
test ecx, 3
jne 0x103125c0
shl ecx, 3
lea eax, [ecx + ecx*2]
test esi, 0xf
jne 0x10312136
test edi, 0xf
jne 0x10312136
lea edx, [ecx + esi]
mov dword [ebp + 0x14], edx
mov edx, dword [ebp + 0x24]
cmp dword [ebp + 0x20], 0
jle 0x10311f1d
movaps xmm4, xmmword [esi + ecx*4]
movaps xmm2, xmm4
movaps xmm5, xmmword [edx + 0x60]
mulps xmm4, xmm5
movaps xmm6, xmmword [esi + ecx*4 + 0x10]
mulps xmm5, xmm6
movaps xmm7, xmmword [edx + 0x70]
mulps xmm6, xmm7
mulps xmm7, xmm2
addps xmm4, xmm6
subps xmm5, xmm7
movaps xmm0, xmmword [ecx + esi]
movaps xmm2, xmm0
movaps xmm1, xmmword [edx]
mulps xmm0, xmm1
movaps xmm6, xmmword [ecx + esi + 0x10]
mulps xmm1, xmm6
movaps xmm7, xmmword [edx + 0x10]
mulps xmm6, xmm7
mulps xmm7, xmm2
addps xmm0, xmm6
subps xmm1, xmm7
movaps xmm6, xmm4
addps xmm4, xmm0
subps xmm0, xmm6
movaps xmmword [esp], xmm0
movaps xmm7, xmm5
addps xmm5, xmm1
subps xmm1, xmm7
movaps xmmword [esp + 0x10], xmm1
movaps xmm0, xmmword [eax + esi]
movaps xmm2, xmm0
movaps xmm1, xmmword [edx + 0x40]
mulps xmm0, xmm1
movaps xmm6, xmmword [eax + esi + 0x10]
mulps xmm1, xmm6
movaps xmm7, xmmword [edx + 0x50]
mulps xmm6, xmm7
mulps xmm7, xmm2
addps xmm0, xmm6
subps xmm1, xmm7
movaps xmm2, xmmword [esi + ecx*2]
movaps xmm3, xmmword [edx + 0x20]
mulps xmm2, xmm3
movaps xmm6, xmmword [esi + ecx*2 + 0x10]
mulps xmm3, xmm6
movaps xmm7, xmmword [edx + 0x30]
mulps xmm6, xmm7
mulps xmm7, xmmword [esi + ecx*2]
addps xmm2, xmm6
subps xmm3, xmm7
add edx, 0x80
movaps xmm6, xmm0
addps xmm0, xmm2
subps xmm2, xmm6
movaps xmmword [esp + 0x20], xmm2
movaps xmm7, xmm1
addps xmm1, xmm3
subps xmm3, xmm7
movaps xmmword [esp + 0x30], xmm3
movaps xmm2, xmmword [ebx + 0x30]
movaps xmm6, xmm4
mulps xmm4, xmm2
movaps xmm3, xmmword [ebx + 0x50]
movaps xmm7, xmm0
mulps xmm0, xmm3
mulps xmm3, xmm6
mulps xmm2, xmm7
addps xmm6, xmm7
movaps xmm7, xmmword [esi]
addps xmm4, xmm0
addps xmm3, xmm2
addps xmm6, xmm7
movaps xmmword [edi], xmm6
addps xmm4, xmm7
addps xmm3, xmm7
movaps xmm2, xmmword [ebx + 0x30]
movaps xmm6, xmm5
mulps xmm5, xmm2
movaps xmm0, xmmword [ebx + 0x50]
movaps xmm7, xmm1
mulps xmm1, xmm0
mulps xmm0, xmm6
mulps xmm2, xmm7
addps xmm6, xmm7
movaps xmm7, xmmword [esi + 0x10]
addps xmm1, xmm5
addps xmm0, xmm2
addps xmm6, xmm7
movaps xmmword [edi + 0x10], xmm6
add esi, 0x20
addps xmm1, xmm7
addps xmm0, xmm7
movaps xmm2, xmmword [esp + 0x10]
movaps xmm5, xmmword [ebx + 0x40]
mulps xmm2, xmm5
movaps xmm7, xmmword [esp + 0x30]
movaps xmm6, xmmword [ebx + 0x60]
mulps xmm7, xmm6
mulps xmm5, xmmword [esp]
mulps xmm6, xmmword [esp + 0x20]
addps xmm2, xmm7
addps xmm5, xmm6
movaps xmm6, xmm4
addps xmm6, xmm2
movaps xmmword [ecx + edi], xmm6
subps xmm4, xmm2
movaps xmm7, xmm1
subps xmm7, xmm5
movaps xmmword [ecx + edi + 0x10], xmm7
addps xmm1, xmm5
movaps xmm2, xmmword [esp + 0x10]
movaps xmm5, xmmword [ebx + 0x60]
mulps xmm2, xmm5
movaps xmm7, xmmword [esp + 0x30]
movaps xmm6, xmmword [ebx + 0x40]
mulps xmm7, xmm6
mulps xmm5, xmmword [esp]
mulps xmm6, xmmword [esp + 0x20]
subps xmm2, xmm7
subps xmm5, xmm6
movaps xmm6, xmm3
addps xmm3, xmm2
movaps xmmword [edi + ecx*2], xmm3
movaps xmm7, xmm0
subps xmm0, xmm5
movaps xmmword [edi + ecx*2 + 0x10], xmm0
subps xmm6, xmm2
movaps xmmword [eax + edi], xmm6
addps xmm7, xmm5
movaps xmmword [eax + edi + 0x10], xmm7
movaps xmmword [edi + ecx*4], xmm4
movaps xmmword [edi + ecx*4 + 0x10], xmm1
add edi, 0x20
cmp esi, dword [ebp + 0x14]
jne 0x10311d28
lea esi, [esi + ecx*4]
lea edi, [edi + ecx*4]
mov edx, dword [ebp + 0x20]
dec edx
mov dword [ebp + 0x20], edx
jg 0x10311d15
jmp 0x1031295b
movaps xmm4, xmmword [esi + ecx*4]
movaps xmm2, xmm4
movaps xmm5, xmmword [edx + 0x60]
mulps xmm4, xmm5
movaps xmm6, xmmword [esi + ecx*4 + 0x10]
mulps xmm5, xmm6
movaps xmm7, xmmword [edx + 0x70]
mulps xmm6, xmm7
mulps xmm7, xmm2
addps xmm4, xmm6
subps xmm5, xmm7
movaps xmm0, xmmword [ecx + esi]
movaps xmm2, xmm0
movaps xmm1, xmmword [edx]
mulps xmm0, xmm1
movaps xmm6, xmmword [ecx + esi + 0x10]
mulps xmm1, xmm6
movaps xmm7, xmmword [edx + 0x10]
mulps xmm6, xmm7
mulps xmm7, xmm2
addps xmm0, xmm6
subps xmm1, xmm7
movaps xmm6, xmm4
addps xmm4, xmm0
subps xmm0, xmm6
movaps xmmword [esp], xmm0
movaps xmm7, xmm5
addps xmm5, xmm1
subps xmm1, xmm7
movaps xmmword [esp + 0x10], xmm1
movaps xmm0, xmmword [eax + esi]
movaps xmm2, xmm0
movaps xmm1, xmmword [edx + 0x40]
mulps xmm0, xmm1
movaps xmm6, xmmword [eax + esi + 0x10]
mulps xmm1, xmm6
movaps xmm7, xmmword [edx + 0x50]
mulps xmm6, xmm7
mulps xmm7, xmm2
addps xmm0, xmm6
subps xmm1, xmm7
movaps xmm2, xmmword [esi + ecx*2]
movaps xmm3, xmmword [edx + 0x20]
mulps xmm2, xmm3
movaps xmm6, xmmword [esi + ecx*2 + 0x10]
mulps xmm3, xmm6
movaps xmm7, xmmword [edx + 0x30]
mulps xmm6, xmm7
mulps xmm7, xmmword [esi + ecx*2]
addps xmm2, xmm6
subps xmm3, xmm7
add edx, 0x80
movaps xmm6, xmm0
addps xmm0, xmm2
subps xmm2, xmm6
movaps xmmword [esp + 0x20], xmm2
movaps xmm7, xmm1
addps xmm1, xmm3
subps xmm3, xmm7
movaps xmmword [esp + 0x30], xmm3
movaps xmm2, xmmword [ebx + 0x30]
movaps xmm6, xmm4
mulps xmm4, xmm2
movaps xmm3, xmmword [ebx + 0x50]
movaps xmm7, xmm0
mulps xmm0, xmm3
mulps xmm3, xmm6
mulps xmm2, xmm7
addps xmm6, xmm7
movaps xmm7, xmmword [esi]
addps xmm4, xmm0
addps xmm3, xmm2
addps xmm6, xmm7
movaps xmmword [esp + 0x40], xmm6
addps xmm4, xmm7
addps xmm3, xmm7
movaps xmm2, xmmword [ebx + 0x30]
movaps xmm6, xmm5
mulps xmm5, xmm2
movaps xmm0, xmmword [ebx + 0x50]
movaps xmm7, xmm1
mulps xmm1, xmm0
mulps xmm0, xmm6
mulps xmm2, xmm7
addps xmm6, xmm7
movaps xmm7, xmmword [esi + 0x10]
addps xmm1, xmm5
addps xmm0, xmm2
addps xmm6, xmm7
movaps xmm2, xmmword [esp + 0x40]
add esi, 0x20
addps xmm1, xmm7
addps xmm0, xmm7
movaps xmm7, xmm2
unpcklps xmm2, xmm6
unpckhps xmm7, xmm6
movaps xmmword [edi], xmm2
movaps xmmword [edi + 0x10], xmm7
movaps xmm2, xmmword [esp + 0x10]
movaps xmm5, xmmword [ebx + 0x40]
mulps xmm2, xmm5
movaps xmm7, xmmword [esp + 0x30]
movaps xmm6, xmmword [ebx + 0x60]
mulps xmm7, xmm6
mulps xmm5, xmmword [esp]
mulps xmm6, xmmword [esp + 0x20]
addps xmm2, xmm7
addps xmm5, xmm6
movaps xmm6, xmm4
addps xmm6, xmm2
subps xmm4, xmm2
movaps xmm7, xmm1
subps xmm7, xmm5
addps xmm1, xmm5
movaps xmm2, xmm6
unpcklps xmm6, xmm7
unpckhps xmm2, xmm7
movaps xmmword [ecx + edi], xmm6
movaps xmmword [ecx + edi + 0x10], xmm2
movaps xmm2, xmmword [esp + 0x10]
movaps xmm5, xmmword [ebx + 0x60]
mulps xmm2, xmm5
movaps xmm7, xmmword [esp + 0x30]
movaps xmm6, xmmword [ebx + 0x40]
mulps xmm7, xmm6
mulps xmm5, xmmword [esp]
mulps xmm6, xmmword [esp + 0x20]
subps xmm2, xmm7
subps xmm5, xmm6
movaps xmm6, xmm3
addps xmm3, xmm2
subps xmm6, xmm2
movaps xmm7, xmm0
subps xmm0, xmm5
addps xmm7, xmm5
movaps xmm2, xmm3
unpcklps xmm3, xmm0
unpckhps xmm2, xmm0
movaps xmmword [edi + ecx*2], xmm3
movaps xmmword [edi + ecx*2 + 0x10], xmm2
movaps xmm2, xmm6
unpcklps xmm6, xmm7
unpckhps xmm2, xmm7
movaps xmmword [eax + edi], xmm6
movaps xmmword [eax + edi + 0x10], xmm2
movaps xmm2, xmm4
unpcklps xmm4, xmm1
unpckhps xmm2, xmm1
movaps xmmword [edi + ecx*4], xmm4
movaps xmmword [edi + ecx*4 + 0x10], xmm2
add edi, 0x20
cmp esi, dword [ebp + 0x14]
jne 0x10311f1d
jmp 0x1031295b
lea edx, [ecx + esi]
mov dword [ebp + 0x14], edx
mov edx, dword [ebp + 0x24]
cmp dword [ebp + 0x20], 0
jle 0x1031236b
movups xmm6, xmmword [esi + ecx*4]
movaps xmm4, xmmword [edx + 0x60]
mulps xmm4, xmm6
movups xmm5, xmmword [esi + ecx*4 + 0x10]
movaps xmm7, xmmword [edx + 0x70]
mulps xmm7, xmm5
mulps xmm5, xmmword [edx + 0x60]
mulps xmm6, xmmword [edx + 0x70]
addps xmm4, xmm7
subps xmm5, xmm6
movups xmm6, xmmword [ecx + esi]
movaps xmm0, xmmword [edx]
mulps xmm0, xmm6
movups xmm1, xmmword [ecx + esi + 0x10]
movaps xmm7, xmmword [edx + 0x10]
mulps xmm7, xmm1
mulps xmm1, xmmword [edx]
mulps xmm6, xmmword [edx + 0x10]
addps xmm0, xmm7
subps xmm1, xmm6
movaps xmm6, xmm4
addps xmm4, xmm0
subps xmm0, xmm6
movaps xmmword [esp], xmm0
movaps xmm7, xmm5
addps xmm5, xmm1
subps xmm1, xmm7
movaps xmmword [esp + 0x10], xmm1
movups xmm6, xmmword [eax + esi]
movaps xmm0, xmmword [edx + 0x40]
mulps xmm0, xmm6
movups xmm1, xmmword [eax + esi + 0x10]
movaps xmm7, xmmword [edx + 0x50]
mulps xmm7, xmm1
mulps xmm1, xmmword [edx + 0x40]
mulps xmm6, xmmword [edx + 0x50]
addps xmm0, xmm7
subps xmm1, xmm6
movups xmm6, xmmword [esi + ecx*2]
movaps xmm2, xmmword [edx + 0x20]
mulps xmm2, xmm6
movups xmm3, xmmword [esi + ecx*2 + 0x10]
movaps xmm7, xmmword [edx + 0x30]
mulps xmm7, xmm3
mulps xmm3, xmmword [edx + 0x20]
mulps xmm6, xmmword [edx + 0x30]
addps xmm2, xmm7
subps xmm3, xmm6
add edx, 0x80
movaps xmm6, xmm0
addps xmm0, xmm2
subps xmm2, xmm6
movaps xmmword [esp + 0x20], xmm2
movaps xmm7, xmm1
addps xmm1, xmm3
subps xmm3, xmm7
movaps xmmword [esp + 0x30], xmm3
movaps xmm2, xmmword [ebx + 0x30]
movaps xmm6, xmm4
mulps xmm4, xmm2
movaps xmm3, xmmword [ebx + 0x50]
movaps xmm7, xmm0
mulps xmm0, xmm3
mulps xmm3, xmm6
mulps xmm2, xmm7
addps xmm6, xmm7
movups xmm7, xmmword [esi]
addps xmm4, xmm0
addps xmm3, xmm2
addps xmm6, xmm7
movlps qword [edi], xmm6
movhps qword [edi + 8], xmm6
addps xmm4, xmm7
addps xmm3, xmm7
movaps xmm2, xmmword [ebx + 0x30]
movaps xmm6, xmm5
mulps xmm5, xmm2
movaps xmm0, xmmword [ebx + 0x50]
movaps xmm7, xmm1
mulps xmm1, xmm0
mulps xmm0, xmm6
mulps xmm2, xmm7
addps xmm6, xmm7
movups xmm7, xmmword [esi + 0x10]
addps xmm1, xmm5
addps xmm0, xmm2
addps xmm6, xmm7
movlps qword [edi + 0x10], xmm6
movhps qword [edi + 0x18], xmm6
addps xmm1, xmm7
addps xmm0, xmm7
movaps xmm2, xmmword [esp + 0x10]
movaps xmm5, xmmword [ebx + 0x40]
mulps xmm2, xmm5
movaps xmm7, xmmword [esp + 0x30]
movaps xmm6, xmmword [ebx + 0x60]
mulps xmm7, xmm6
mulps xmm5, xmmword [esp]
mulps xmm6, xmmword [esp + 0x20]
addps xmm2, xmm7
addps xmm5, xmm6
movaps xmm6, xmm4
addps xmm6, xmm2
movlps qword [ecx + edi], xmm6
movhps qword [ecx + edi + 8], xmm6
subps xmm4, xmm2
movaps xmm7, xmm1
subps xmm7, xmm5
movlps qword [ecx + edi + 0x10], xmm7
movhps qword [ecx + edi + 0x18], xmm7
addps xmm1, xmm5
movaps xmm2, xmmword [esp + 0x10]
movaps xmm5, xmmword [ebx + 0x60]
mulps xmm2, xmm5
movaps xmm7, xmmword [esp + 0x30]
movaps xmm6, xmmword [ebx + 0x40]
mulps xmm7, xmm6
mulps xmm5, xmmword [esp]
mulps xmm6, xmmword [esp + 0x20]
subps xmm2, xmm7
subps xmm5, xmm6
movaps xmm6, xmm3
addps xmm3, xmm2
movlps qword [edi + ecx*2], xmm3
movhps qword [edi + ecx*2 + 8], xmm3
movaps xmm7, xmm0
subps xmm0, xmm5
movlps qword [edi + ecx*2 + 0x10], xmm0
movhps qword [edi + ecx*2 + 0x18], xmm0
subps xmm6, xmm2
movlps qword [eax + edi], xmm6
movhps qword [eax + edi + 8], xmm6
addps xmm7, xmm5
movlps qword [eax + edi + 0x10], xmm7
movhps qword [eax + edi + 0x18], xmm7
movlps qword [edi + ecx*4], xmm4
movhps qword [edi + ecx*4 + 8], xmm4
movlps qword [edi + ecx*4 + 0x10], xmm1
movhps qword [edi + ecx*4 + 0x18], xmm1
add esi, 0x20
add edi, 0x20
cmp esi, dword [ebp + 0x14]
jne 0x10312149
lea esi, [esi + ecx*4]
lea edi, [edi + ecx*4]
mov edx, dword [ebp + 0x20]
dec edx
mov dword [ebp + 0x20], edx
jg 0x10312136
jmp 0x1031295b
movups xmm6, xmmword [esi + ecx*4]
movaps xmm4, xmmword [edx + 0x60]
mulps xmm4, xmm6
movups xmm5, xmmword [esi + ecx*4 + 0x10]
movaps xmm7, xmmword [edx + 0x70]
mulps xmm7, xmm5
mulps xmm5, xmmword [edx + 0x60]
mulps xmm6, xmmword [edx + 0x70]
addps xmm4, xmm7
subps xmm5, xmm6
movups xmm6, xmmword [ecx + esi]
movaps xmm0, xmmword [edx]
mulps xmm0, xmm6
movups xmm1, xmmword [ecx + esi + 0x10]
movaps xmm7, xmmword [edx + 0x10]
mulps xmm7, xmm1
mulps xmm1, xmmword [edx]
mulps xmm6, xmmword [edx + 0x10]
addps xmm0, xmm7
subps xmm1, xmm6
movaps xmm6, xmm4
addps xmm4, xmm0
subps xmm0, xmm6
movaps xmmword [esp], xmm0
movaps xmm7, xmm5
addps xmm5, xmm1
subps xmm1, xmm7
movaps xmmword [esp + 0x10], xmm1
movups xmm6, xmmword [eax + esi]
movaps xmm0, xmmword [edx + 0x40]
mulps xmm0, xmm6
movups xmm1, xmmword [eax + esi + 0x10]
movaps xmm7, xmmword [edx + 0x50]
mulps xmm7, xmm1
mulps xmm1, xmmword [edx + 0x40]
mulps xmm6, xmmword [edx + 0x50]
addps xmm0, xmm7
subps xmm1, xmm6
movups xmm6, xmmword [esi + ecx*2]
movaps xmm2, xmmword [edx + 0x20]
mulps xmm2, xmm6
movups xmm3, xmmword [esi + ecx*2 + 0x10]
movaps xmm7, xmmword [edx + 0x30]
mulps xmm7, xmm3
mulps xmm3, xmmword [edx + 0x20]
mulps xmm6, xmmword [edx + 0x30]
addps xmm2, xmm7
subps xmm3, xmm6
add edx, 0x80
movaps xmm6, xmm0
addps xmm0, xmm2
subps xmm2, xmm6
movaps xmmword [esp + 0x20], xmm2
movaps xmm7, xmm1
addps xmm1, xmm3
subps xmm3, xmm7
movaps xmmword [esp + 0x30], xmm3
movaps xmm2, xmmword [ebx + 0x30]
movaps xmm6, xmm4
mulps xmm4, xmm2
movaps xmm3, xmmword [ebx + 0x50]
movaps xmm7, xmm0
mulps xmm0, xmm3
mulps xmm3, xmm6
mulps xmm2, xmm7
addps xmm6, xmm7
movups xmm7, xmmword [esi]
addps xmm4, xmm0
addps xmm3, xmm2
addps xmm6, xmm7
movaps xmmword [esp + 0x40], xmm6
addps xmm4, xmm7
addps xmm3, xmm7
movaps xmm2, xmmword [ebx + 0x30]
movaps xmm6, xmm5
mulps xmm5, xmm2
movaps xmm0, xmmword [ebx + 0x50]
movaps xmm7, xmm1
mulps xmm1, xmm0
mulps xmm0, xmm6
mulps xmm2, xmm7
addps xmm6, xmm7
movups xmm7, xmmword [esi + 0x10]
addps xmm1, xmm5
addps xmm0, xmm2
addps xmm6, xmm7
movaps xmm2, xmmword [esp + 0x40]
addps xmm1, xmm7
addps xmm0, xmm7
movaps xmm7, xmm2
unpcklps xmm2, xmm6
unpckhps xmm7, xmm6
movlps qword [edi], xmm2
movhps qword [edi + 8], xmm2
movlps qword [edi + 0x10], xmm7
movhps qword [edi + 0x18], xmm7
movaps xmm2, xmmword [esp + 0x10]
movaps xmm5, xmmword [ebx + 0x40]
mulps xmm2, xmm5
movaps xmm7, xmmword [esp + 0x30]
movaps xmm6, xmmword [ebx + 0x60]
mulps xmm7, xmm6
mulps xmm5, xmmword [esp]
mulps xmm6, xmmword [esp + 0x20]
addps xmm2, xmm7
addps xmm5, xmm6
movaps xmm6, xmm4
addps xmm6, xmm2
subps xmm4, xmm2
movaps xmm7, xmm1
subps xmm7, xmm5
addps xmm1, xmm5
movaps xmm2, xmm6
unpcklps xmm6, xmm7
unpckhps xmm2, xmm7
movlps qword [ecx + edi], xmm6
movhps qword [ecx + edi + 8], xmm6
movlps qword [ecx + edi + 0x10], xmm2
movhps qword [ecx + edi + 0x18], xmm2
movaps xmm2, xmmword [esp + 0x10]
movaps xmm5, xmmword [ebx + 0x60]
mulps xmm2, xmm5
movaps xmm7, xmmword [esp + 0x30]
movaps xmm6, xmmword [ebx + 0x40]
mulps xmm7, xmm6
mulps xmm5, xmmword [esp]
mulps xmm6, xmmword [esp + 0x20]
subps xmm2, xmm7
subps xmm5, xmm6
movaps xmm6, xmm3
addps xmm3, xmm2
subps xmm6, xmm2
movaps xmm7, xmm0
subps xmm0, xmm5
addps xmm7, xmm5
movaps xmm2, xmm3
unpcklps xmm3, xmm0
unpckhps xmm2, xmm0
movlps qword [edi + ecx*2], xmm3
movhps qword [edi + ecx*2 + 8], xmm3
movlps qword [edi + ecx*2 + 0x10], xmm2
movhps qword [edi + ecx*2 + 0x18], xmm2
movaps xmm2, xmm6
unpcklps xmm6, xmm7
unpckhps xmm2, xmm7
movlps qword [eax + edi], xmm6
movhps qword [eax + edi + 8], xmm6
movlps qword [eax + edi + 0x10], xmm2
movhps qword [eax + edi + 0x18], xmm2
movaps xmm2, xmm4
unpcklps xmm4, xmm1
unpckhps xmm2, xmm1
movlps qword [edi + ecx*4], xmm4
movhps qword [edi + ecx*4 + 8], xmm4
movlps qword [edi + ecx*4 + 0x10], xmm2
movhps qword [edi + ecx*4 + 0x18], xmm2
add esi, 0x20
add edi, 0x20
cmp esi, dword [ebp + 0x14]
jne 0x1031236b
jmp 0x1031295b
mov edx, ecx
shl ecx, 3
lea eax, [ecx + ecx*2]
test edx, 1
jne 0x1031273c
test esi, 0xf
jne 0x1031273c
test edi, 0xf
jne 0x1031273c
lea edx, [ecx + esi]
mov dword [ebp + 0x14], edx
mov edx, dword [ebp + 0x24]
movaps xmm0, xmmword [esi]
movaps xmm6, xmmword [ecx + esi]
movaps xmm1, xmmword [edx]
shufps xmm1, xmm1, 0xa0
movaps xmm7, xmmword [edx]
shufps xmm7, xmm7, 0xf5
mulps xmm1, xmm6
shufps xmm6, xmm6, 0xb1
xorps xmm6, xmmword [ebx]
mulps xmm7, xmm6
addps xmm1, xmm7
movaps xmm6, xmmword [esi + ecx*4]
movaps xmm4, xmmword [edx + 0x30]
shufps xmm4, xmm4, 0xa0
movaps xmm7, xmmword [edx + 0x30]
shufps xmm7, xmm7, 0xf5
mulps xmm4, xmm6
shufps xmm6, xmm6, 0xb1
xorps xmm6, xmmword [ebx]
mulps xmm7, xmm6
addps xmm4, xmm7
movaps xmm6, xmmword [esi + ecx*2]
movaps xmm2, xmmword [edx + 0x10]
shufps xmm2, xmm2, 0xa0
movaps xmm7, xmmword [edx + 0x10]
shufps xmm7, xmm7, 0xf5
mulps xmm2, xmm6
shufps xmm6, xmm6, 0xb1
xorps xmm6, xmmword [ebx]
mulps xmm7, xmm6
addps xmm2, xmm7
movaps xmm6, xmmword [eax + esi]
movaps xmm3, xmmword [edx + 0x20]
shufps xmm3, xmm3, 0xa0
movaps xmm7, xmmword [edx + 0x20]
shufps xmm7, xmm7, 0xf5
mulps xmm3, xmm6
shufps xmm6, xmm6, 0xb1
xorps xmm6, xmmword [ebx]
mulps xmm7, xmm6
addps xmm3, xmm7
movaps xmm5, xmm1
addps xmm1, xmm4
subps xmm5, xmm4
movaps xmm6, xmm2
addps xmm2, xmm3
subps xmm6, xmm3
movaps xmm7, xmm0
addps xmm0, xmm1
addps xmm0, xmm2
movaps xmmword [edi], xmm0
movaps xmm4, xmm1
mulps xmm1, xmmword [ebx + 0x30]
mulps xmm4, xmmword [ebx + 0x50]
movaps xmm3, xmm2
mulps xmm2, xmmword [ebx + 0x50]
mulps xmm3, xmmword [ebx + 0x30]
addps xmm1, xmm7
addps xmm4, xmm7
movaps xmm7, xmm5
mulps xmm5, xmmword [ebx + 0x40]
mulps xmm7, xmmword [ebx + 0x60]
addps xmm1, xmm2
addps xmm4, xmm3
movaps xmm2, xmm6
mulps xmm6, xmmword [ebx + 0x60]
mulps xmm2, xmmword [ebx + 0x40]
addps xmm5, xmm6
subps xmm7, xmm2
shufps xmm5, xmm5, 0xb1
xorps xmm5, xmmword [ebx]
shufps xmm7, xmm7, 0xb1
xorps xmm7, xmmword [ebx]
movaps xmm3, xmm1
addps xmm1, xmm5
movaps xmmword [ecx + edi], xmm1
subps xmm3, xmm5
movaps xmmword [edi + ecx*4], xmm3
movaps xmm6, xmm4
addps xmm6, xmm7
movaps xmmword [edi + ecx*2], xmm6
subps xmm4, xmm7
movaps xmmword [eax + edi], xmm4
add edx, 0x40
add esi, 0x10
add edi, 0x10
cmp esi, dword [ebp + 0x14]
jne 0x103125f5
lea esi, [esi + ecx*4]
lea edi, [edi + ecx*4]
mov edx, dword [ebp + 0x20]
dec edx
mov dword [ebp + 0x20], edx
jg 0x103125ec
jmp 0x1031295b
mov edx, dword [ebp + 0x1c]
test edx, 1
lea edx, [ecx + esi]
mov dword [ebp + 0x14], edx
mov edx, dword [ebp + 0x24]
je 0x10312801
movsd xmm1, qword [ecx + esi]
movsd xmm4, qword [esi + ecx*4]
movaps xmm5, xmm1
addps xmm1, xmm4
subps xmm5, xmm4
movsd xmm2, qword [esi + ecx*2]
movsd xmm3, qword [eax + esi]
movaps xmm6, xmm2
addps xmm2, xmm3
subps xmm6, xmm3
movsd xmm0, qword [esi]
movaps xmm7, xmm0
addps xmm0, xmm1
addps xmm0, xmm2
movlps qword [edi], xmm0
movaps xmm4, xmm1
mulps xmm1, xmmword [ebx + 0x30]
mulps xmm4, xmmword [ebx + 0x50]
movaps xmm3, xmm2
mulps xmm2, xmmword [ebx + 0x50]
mulps xmm3, xmmword [ebx + 0x30]
addps xmm1, xmm7
addps xmm4, xmm7
movaps xmm7, xmm5
mulps xmm5, xmmword [ebx + 0x40]
mulps xmm7, xmmword [ebx + 0x60]
addps xmm1, xmm2
addps xmm4, xmm3
movaps xmm2, xmm6
mulps xmm6, xmmword [ebx + 0x60]
mulps xmm2, xmmword [ebx + 0x40]
addps xmm5, xmm6
subps xmm7, xmm2
shufps xmm5, xmm5, 0xb1
xorps xmm5, xmmword [ebx]
shufps xmm7, xmm7, 0xb1
xorps xmm7, xmmword [ebx]
movaps xmm3, xmm1
addps xmm1, xmm5
movlps qword [ecx + edi], xmm1
subps xmm3, xmm5
movlps qword [edi + ecx*4], xmm3
movaps xmm6, xmm4
addps xmm6, xmm7
movlps qword [edi + ecx*2], xmm6
subps xmm4, xmm7
movlps qword [eax + edi], xmm4
add esi, 8
add edi, 8
add edx, 0x20
movups xmm0, xmmword [esi]
movups xmm6, xmmword [ecx + esi]
movaps xmm1, xmmword [edx]
shufps xmm1, xmm1, 0xa0
movaps xmm7, xmmword [edx]
shufps xmm7, xmm7, 0xf5
mulps xmm1, xmm6
shufps xmm6, xmm6, 0xb1
xorps xmm6, xmmword [ebx]
mulps xmm7, xmm6
addps xmm1, xmm7
movups xmm6, xmmword [esi + ecx*4]
movaps xmm4, xmmword [edx + 0x30]
shufps xmm4, xmm4, 0xa0
movaps xmm7, xmmword [edx + 0x30]
shufps xmm7, xmm7, 0xf5
mulps xmm4, xmm6
shufps xmm6, xmm6, 0xb1
xorps xmm6, xmmword [ebx]
mulps xmm7, xmm6
addps xmm4, xmm7
movups xmm6, xmmword [esi + ecx*2]
movaps xmm2, xmmword [edx + 0x10]
shufps xmm2, xmm2, 0xa0
movaps xmm7, xmmword [edx + 0x10]
shufps xmm7, xmm7, 0xf5
mulps xmm2, xmm6
shufps xmm6, xmm6, 0xb1
xorps xmm6, xmmword [ebx]
mulps xmm7, xmm6
addps xmm2, xmm7
movups xmm6, xmmword [eax + esi]
movaps xmm3, xmmword [edx + 0x20]
shufps xmm3, xmm3, 0xa0
movaps xmm7, xmmword [edx + 0x20]
shufps xmm7, xmm7, 0xf5
mulps xmm3, xmm6
shufps xmm6, xmm6, 0xb1
xorps xmm6, xmmword [ebx]
mulps xmm7, xmm6
addps xmm3, xmm7
movaps xmm5, xmm1
addps xmm1, xmm4
subps xmm5, xmm4
movaps xmm6, xmm2
addps xmm2, xmm3
subps xmm6, xmm3
movaps xmm7, xmm0
addps xmm0, xmm1
addps xmm0, xmm2
movlps qword [edi], xmm0
movhps qword [edi + 8], xmm0
movaps xmm4, xmm1
mulps xmm1, xmmword [ebx + 0x30]
mulps xmm4, xmmword [ebx + 0x50]
movaps xmm3, xmm2
mulps xmm2, xmmword [ebx + 0x50]
mulps xmm3, xmmword [ebx + 0x30]
addps xmm1, xmm7
addps xmm4, xmm7
movaps xmm7, xmm5
mulps xmm5, xmmword [ebx + 0x40]
mulps xmm7, xmmword [ebx + 0x60]
addps xmm1, xmm2
addps xmm4, xmm3
movaps xmm2, xmm6
mulps xmm6, xmmword [ebx + 0x60]
mulps xmm2, xmmword [ebx + 0x40]
addps xmm5, xmm6
subps xmm7, xmm2
shufps xmm5, xmm5, 0xb1
xorps xmm5, xmmword [ebx]
shufps xmm7, xmm7, 0xb1
xorps xmm7, xmmword [ebx]
movaps xmm3, xmm1
addps xmm1, xmm5
movlps qword [ecx + edi], xmm1
movhps qword [ecx + edi + 8], xmm1
subps xmm3, xmm5
movlps qword [edi + ecx*4], xmm3
movhps qword [edi + ecx*4 + 8], xmm3
movaps xmm6, xmm4
addps xmm6, xmm7
movlps qword [edi + ecx*2], xmm6
movhps qword [edi + ecx*2 + 8], xmm6
subps xmm4, xmm7
movlps qword [eax + edi], xmm4
movhps qword [eax + edi + 8], xmm4
add edx, 0x40
add esi, 0x10
add edi, 0x10
cmp esi, dword [ebp + 0x14]
jne 0x10312801
lea esi, [esi + ecx*4]
lea edi, [edi + ecx*4]
mov edx, dword [ebp + 0x20]
dec edx
mov dword [ebp + 0x20], edx
jg 0x1031273c
mov esp, ebp
pop ebp
pop edi
pop esi
pop ebx
ret