Function at 0x100038c0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x54
mov ecx, dword [esp + 0x58]
push ebx
mov ebx, dword [esp + 0x60]
push ebp
mov ebp, ecx
imul ebp, dword [esp + 0x64]
push esi
lea esi, [ebp + ebp]
push edi
mov dword [esp + 0x24], ebp
mov edi, ebp
mov dword [esp + 0x10], esi
xor esi, esi
cmp ebx, 4
lea ebp, [ebp + ebp*2]
mov dword [esp + 0x68], ebp
mov dword [esp + 0x20], esi
jl 0x10003aed
add ebx, 0xfffffffc
shr ebx, 2
inc ebx
mov dword [esp + 0x30], ebx
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x20], ebx
mov edi, edi
movss xmm1, dword [eax + ebp*4]
addss xmm1, dword [eax + edi*4]
movss xmm0, dword [eax + esi*4]
mov ebx, dword [esp + 0x10]
addss xmm0, dword [eax + ebx*4]
movaps xmm2, xmm0
subss xmm0, xmm1
addss xmm2, xmm1
lea ebx, [esi*4]
movss dword [edx + ebx*4], xmm2
lea ebp, [ebx + ecx*4]
movss dword [edx + ebp*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
lea ebp, [ecx + ecx]
add ebx, ebp
mov ebp, dword [esp + 0x10]
subss xmm0, dword [eax + ebp*4]
mov ebp, dword [esp + 0x68]
movss dword [edx + ebx*4 - 4], xmm0
movss xmm0, dword [eax + ebp*4]
subss xmm0, dword [eax + edi*4]
movss dword [edx + ebx*4], xmm0
mov ebx, dword [esp + 0x10]
add ebp, ecx
movss xmm1, dword [eax + ebp*4]
add ebx, ecx
mov dword [esp + 0x68], ebp
add esi, ecx
movss xmm0, dword [eax + esi*4]
addss xmm0, dword [eax + ebx*4]
movaps xmm2, xmm0
mov dword [esp + 0x10], ebx
add edi, ecx
addss xmm1, dword [eax + edi*4]
subss xmm0, xmm1
lea ebx, [esi*4]
lea ebp, [ebx + ecx*4]
addss xmm2, xmm1
movss dword [edx + ebx*4], xmm2
movss dword [edx + ebp*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
lea ebp, [ecx + ecx]
add ebx, ebp
mov ebp, dword [esp + 0x10]
subss xmm0, dword [eax + ebp*4]
mov ebp, dword [esp + 0x68]
movss dword [edx + ebx*4 - 4], xmm0
movss xmm0, dword [eax + ebp*4]
subss xmm0, dword [eax + edi*4]
movss dword [edx + ebx*4], xmm0
mov ebx, dword [esp + 0x10]
add ebp, ecx
movss xmm1, dword [eax + ebp*4]
add esi, ecx
movss xmm0, dword [eax + esi*4]
add ebx, ecx
addss xmm0, dword [eax + ebx*4]
add edi, ecx
addss xmm1, dword [eax + edi*4]
mov dword [esp + 0x68], ebp
movaps xmm2, xmm0
mov dword [esp + 0x10], ebx
lea ebx, [esi*4]
subss xmm0, xmm1
lea ebp, [ebx + ecx*4]
addss xmm2, xmm1
movss dword [edx + ebx*4], xmm2
movss dword [edx + ebp*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
lea ebp, [ecx + ecx]
add ebx, ebp
mov ebp, dword [esp + 0x10]
subss xmm0, dword [eax + ebp*4]
mov ebp, dword [esp + 0x68]
movss dword [edx + ebx*4 - 4], xmm0
movss xmm0, dword [eax + ebp*4]
subss xmm0, dword [eax + edi*4]
add edi, ecx
add ebp, ecx
movss dword [edx + ebx*4], xmm0
mov dword [esp + 0x68], ebp
movss xmm1, dword [eax + ebp*4]
mov ebx, dword [esp + 0x10]
addss xmm1, dword [eax + edi*4]
add esi, ecx
movss xmm0, dword [eax + esi*4]
add ebx, ecx
addss xmm0, dword [eax + ebx*4]
mov dword [esp + 0x10], ebx
movaps xmm2, xmm0
lea ebx, [esi*4]
subss xmm0, xmm1
lea ebp, [ebx + ecx*4]
addss xmm2, xmm1
movss dword [edx + ebx*4], xmm2
movss dword [edx + ebp*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
lea ebp, [ecx + ecx]
add ebx, ebp
mov ebp, dword [esp + 0x10]
subss xmm0, dword [eax + ebp*4]
mov ebp, dword [esp + 0x68]
add dword [esp + 0x10], ecx
movss dword [edx + ebx*4 - 4], xmm0
movss xmm0, dword [eax + ebp*4]
subss xmm0, dword [eax + edi*4]
add ebp, ecx
add edi, ecx
add esi, ecx
sub dword [esp + 0x30], 1
movss dword [edx + ebx*4], xmm0
mov dword [esp + 0x68], ebp
jne 0x10003910
mov ebx, dword [esp + 0x6c]
cmp dword [esp + 0x20], ebx
jge 0x10003bb1
mov ebp, dword [esp + 0x68]
lea ebp, [eax + ebp*4]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x10]
lea ebp, [eax + ebp*4]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x6c]
sub ebp, dword [esp + 0x20]
lea edi, [eax + edi*4]
lea ebx, [ecx*4]
mov dword [esp + 0x30], edi
mov dword [esp + 0x2c], ebp
jmp 0x10003b30
movss xmm1, dword [edi]
mov edi, dword [esp + 0x68]
addss xmm1, dword [edi]
movss xmm0, dword [eax + esi*4]
mov edi, dword [esp + 0x28]
addss xmm0, dword [edi]
movaps xmm2, xmm0
lea ebp, [esi*4]
subss xmm0, xmm1
lea edi, [ebx + ebp]
addss xmm2, xmm1
movss dword [edx + ebp*4], xmm2
movss dword [edx + edi*4 - 4], xmm0
movss xmm0, dword [eax + esi*4]
lea edi, [ecx + ecx]
add ebp, edi
mov edi, dword [esp + 0x28]
subss xmm0, dword [edi]
mov edi, dword [esp + 0x68]
add dword [esp + 0x68], ebx
add dword [esp + 0x28], ebx
movss dword [edx + ebp*4 - 4], xmm0
movss xmm0, dword [edi]
mov edi, dword [esp + 0x30]
subss xmm0, dword [edi]
add edi, ebx
add esi, ecx
sub dword [esp + 0x2c], 1
movss dword [edx + ebp*4], xmm0
mov dword [esp + 0x30], edi
jne 0x10003b30
mov ebx, dword [esp + 0x6c]
cmp ecx, 2
jl 0x10004234
je 0x10003e81
xor ebp, ebp
test ebx, ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x10], ebp
jle 0x10003e76
mov esi, ecx
shl esi, 4
mov dword [esp + 0x60], esi
lea esi, [ebx*4]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x6c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x44], esi
cmp ecx, 2
lea edi, [ecx + ecx]
lea edi, [edi + ebp*4]
jle 0x10003e52
lea esi, [ebx + ebp]
mov dword [esp + 0x34], esi
lea esi, [edx + edi*4]
mov dword [esp + 0x1c], esi
lea esi, [eax + ebp*4]
mov dword [esp + 0x28], esi
lea esi, [ebp + ebx*2]
lea ebx, [ecx + ecx]
lea ebx, [ebx + ebp*4]
mov ebp, dword [esp + 0x70]
lea ebx, [edx + ebx*4]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x74]
sub ebx, ebp
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x78]
sub ebx, ebp
lea edi, [edi + ecx*2]
lea edi, [edx + edi*4]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x74]
sub ebx, dword [esp + 0x78]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x68], edi
mov edi, dword [esp + 0x70]
lea ebx, [ecx - 3]
shr ebx, 1
add edi, 4
inc ebx
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x24]
jmp 0x10003c94
mov esi, dword [esp + 0x48]
movss xmm4, dword [esi + eax + 4]
movss xmm0, dword [esi + eax + 8]
movss xmm3, dword [edi - 4]
movss xmm2, dword [edi]
mov ebp, dword [esp + 0x4c]
add dword [esp + 0x28], 8
add dword [esp + 0x20], 8
add dword [esp + 0x34], 2
add dword [esp + 0x38], 2
add dword [esp + 0x18], 8
sub dword [esp + 0x1c], 8
sub dword [esp + 0x14], 8
movaps xmm5, xmm2
mulss xmm5, xmm0
add esi, 8
add ebx, ebx
mulss xmm0, xmm3
mulss xmm2, xmm4
subss xmm0, xmm2
add ebx, ebx
mov dword [esp + 0x48], esi
add esi, ebx
mov ebx, dword [esp + 0x68]
movss xmm2, dword [esi + eax - 4]
movaps xmm1, xmm4
mulss xmm1, xmm3
addss xmm1, xmm5
movss xmm5, dword [ebx + ebp]
mov ebx, dword [esp + 0x50]
movss xmm6, dword [edi + ebx]
mov ebx, dword [esp + 0x24]
movaps xmm4, xmm0
movss xmm0, dword [esi + eax]
movaps xmm3, xmm2
mulss xmm2, xmm6
movaps xmm7, xmm0
mulss xmm0, xmm5
subss xmm0, xmm2
mulss xmm7, xmm6
mulss xmm3, xmm5
lea ebp, [ebx*4]
add esi, ebp
mov ebp, dword [esp + 0x68]
movss xmm2, dword [ebp]
movss xmm5, dword [esi + eax - 4]
mov ebp, dword [esp + 0x54]
movss xmm6, dword [edi + ebp]
addss xmm3, xmm7
movaps xmm7, xmm0
movss xmm0, dword [esi + eax]
mov esi, dword [esp + 0x28]
movss dword [esp + 0x58], xmm0
mulss xmm0, xmm6
movss dword [esp + 0x5c], xmm6
movaps xmm6, xmm2
mulss xmm2, dword [esp + 0x58]
mulss xmm6, xmm5
mulss xmm5, dword [esp + 0x5c]
subss xmm2, xmm5
addss xmm0, xmm6
movaps xmm5, xmm0
subss xmm0, xmm1
addss xmm5, xmm1
movaps xmm1, xmm2
addss xmm1, xmm4
subss xmm4, xmm2
movss xmm2, dword [esi]
movaps xmm6, xmm2
subss xmm2, xmm7
movss dword [esp + 0x3c], xmm0
movaps xmm0, xmm4
movss xmm4, dword [esi - 4]
mov esi, dword [esp + 0x20]
addss xmm6, xmm7
movaps xmm7, xmm2
movaps xmm2, xmm4
addss xmm2, xmm3
subss xmm4, xmm3
movaps xmm3, xmm2
addss xmm3, xmm5
movss dword [esi - 4], xmm3
add dword [esp + 0x68], 8
movaps xmm3, xmm6
addss xmm3, xmm1
movss dword [esi], xmm3
mov esi, dword [esp + 0x1c]
movaps xmm3, xmm4
subss xmm3, xmm0
movss dword [esi - 4], xmm3
movss xmm3, dword [esp + 0x3c]
subss xmm3, xmm7
addss xmm7, dword [esp + 0x3c]
movss dword [esi], xmm3
mov esi, dword [esp + 0x18]
movss dword [esi], xmm7
addss xmm4, xmm0
movss dword [esi - 4], xmm4
mov esi, dword [esp + 0x14]
add edi, 8
sub dword [esp + 0x40], 1
subss xmm2, xmm5
subss xmm1, xmm6
movss dword [esi - 4], xmm2
movss dword [esi], xmm1
jne 0x10003c90
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x60]
add dword [esp + 0x2c], esi
lea esi, [ecx*4]
add dword [esp + 0x30], esi
add ebp, ecx
sub dword [esp + 0x44], 1
mov dword [esp + 0x10], ebp
jne 0x10003bf2
test cl, 1
jne 0x10004234
jmp 0x10003e85
mov ebx, dword [esp + 0x24]
cmp dword [esp + 0x6c], 4
movss xmm2, dword [0x10044d84]
movss xmm3, dword [0x1003050c]
lea esi, [ebx + ecx - 1]
mov dword [esp + 0x10], esi
lea esi, [esi + ebx*2]
mov dword [esp + 0x68], esi
lea edi, [ecx*4]
mov esi, ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], 0
jl 0x10004168
add edi, edi
add edi, edi
mov dword [esp + 0x28], edi
lea edi, [ecx + ecx*2]
lea edi, [edx + edi*4]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x10]
add edi, ebx
lea ebp, [ecx*4]
lea ebx, [eax + ebp - 4]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x6c]
add ebx, 0xfffffffc
shr ebx, 2
inc ebx
mov dword [esp + 0x44], ebx
add ebx, ebx
add ebx, ebx
lea edi, [eax + edi*4]
mov dword [esp + 0x20], ebx
jmp 0x10003f10
mov ebx, dword [esp + 0x68]
movss xmm4, dword [eax + ebx*4]
mov ebx, dword [esp + 0x10]
movss xmm0, dword [eax + ebx*4]
mov ebx, dword [esp + 0x18]
movaps xmm1, xmm0
subss xmm0, xmm4
addss xmm1, xmm4
movss xmm4, dword [ebx]
mulss xmm0, xmm2
addss xmm4, xmm0
movss dword [edx + esi*4 - 4], xmm4
movss xmm4, dword [ebx]
mov ebx, dword [esp + 0x14]
subss xmm4, xmm0
movss dword [ebx - 4], xmm4
add dword [esp + 0x68], ecx
add dword [esp + 0x10], ecx
mulss xmm1, xmm3
movaps xmm0, xmm1
subss xmm0, dword [edi]
movss dword [edx + esi*4], xmm0
movss xmm0, dword [edi]
addss xmm0, xmm1
movss dword [ebx], xmm0
add edi, ebp
lea ebx, [ecx*4]
add esi, ebx
mov ebx, dword [esp + 0x28]
add dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x18]
add dword [esp + 0x1c], ecx
add dword [esp + 0x1c], ecx
lea ebp, [ecx*4]
add ebx, ebp
mov ebp, dword [esp + 0x68]
movss xmm4, dword [eax + ebp*4]
mov ebp, dword [esp + 0x10]
movss xmm0, dword [eax + ebp*4]
add dword [esp + 0x68], ecx
movaps xmm1, xmm0
subss xmm0, xmm4
addss xmm1, xmm4
movss xmm4, dword [ebx]
mulss xmm0, xmm2
addss xmm4, xmm0
movss dword [edx + esi*4 - 4], xmm4
movss xmm4, dword [ebx]
subss xmm4, xmm0
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
movss dword [ebx - 4], xmm4
mulss xmm1, xmm3
add ebp, ecx
movaps xmm0, xmm1
subss xmm0, dword [edi]
movss dword [edx + esi*4], xmm0
movss xmm0, dword [edi]
addss xmm0, xmm1
movss dword [ebx], xmm0
add ebx, dword [esp + 0x28]
mov dword [esp + 0x10], ebp
lea ebp, [ecx*4]
add edi, ebp
lea ebp, [ecx*4]
add esi, ebp
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x18]
lea ebp, [ecx*4]
add ebx, ebp
mov ebp, dword [esp + 0x68]
movss xmm4, dword [eax + ebp*4]
mov ebp, dword [esp + 0x10]
movss xmm0, dword [eax + ebp*4]
movaps xmm1, xmm0
addss xmm1, xmm4
subss xmm0, xmm4
movss xmm4, dword [ebx]
mov dword [esp + 0x18], ebx
mulss xmm1, xmm3
mulss xmm0, xmm2
addss xmm4, xmm0
movss dword [edx + esi*4 - 4], xmm4
movss xmm4, dword [ebx]
mov ebx, dword [esp + 0x14]
add dword [esp + 0x68], ecx
subss xmm4, xmm0
movss dword [ebx - 4], xmm4
add ebp, ecx
mov dword [esp + 0x10], ebp
movaps xmm0, xmm1
subss xmm0, dword [edi]
movss dword [edx + esi*4], xmm0
movss xmm0, dword [edi]
addss xmm0, xmm1
movss dword [ebx], xmm0
add ebx, dword [esp + 0x28]
add dword [esp + 0x1c], ecx
lea ebp, [ecx*4]
add edi, ebp
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x18]
add dword [esp + 0x1c], ecx
lea ebp, [ecx*4]
add esi, ebp
lea ebp, [ecx*4]
add ebx, ebp
mov ebp, dword [esp + 0x68]
movss xmm4, dword [eax + ebp*4]
mov ebp, dword [esp + 0x10]
movss xmm0, dword [eax + ebp*4]
add dword [esp + 0x68], ecx
movaps xmm1, xmm0
subss xmm0, xmm4
addss xmm1, xmm4
movss xmm4, dword [ebx]
mulss xmm0, xmm2
addss xmm4, xmm0
movss dword [edx + esi*4 - 4], xmm4
movss xmm4, dword [ebx]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x14]
subss xmm4, xmm0
add ebp, ecx
movss dword [ebx - 4], xmm4
mulss xmm1, xmm3
mov dword [esp + 0x10], ebp
movaps xmm0, xmm1
subss xmm0, dword [edi]
movss dword [edx + esi*4], xmm0
movss xmm0, dword [edi]
lea ebp, [ecx*4]
add edi, ebp
lea ebp, [ecx*4]
add esi, ebp
addss xmm0, xmm1
movss dword [ebx], xmm0
add ebx, dword [esp + 0x28]
lea ebp, [ecx*4]
add dword [esp + 0x18], ebp
sub dword [esp + 0x44], 1
mov dword [esp + 0x14], ebx
jne 0x10003f10
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x6c]
cmp dword [esp + 0x20], edi
jge 0x10004234
lea ebp, [ecx*4]
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x68]
lea ebp, [eax + ebp*4]
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x10]
lea edi, [ecx*4]
lea ecx, [esi + ecx*2]
lea ebp, [eax + ebp*4]
mov dword [esp + 0x44], ebp
lea ebp, [edx + ecx*4]
mov ecx, dword [esp + 0x10]
lea edx, [edx + esi*4]
mov esi, dword [esp + 0x1c]
add ecx, ebx
lea ecx, [eax + ecx*4]
lea eax, [eax + esi*4 - 4]
mov esi, dword [esp + 0x6c]
sub esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x68]
movss xmm4, dword [ebx]
mov ebx, dword [esp + 0x44]
movss xmm0, dword [ebx]
add dword [esp + 0x68], edi
movaps xmm1, xmm0
subss xmm0, xmm4
addss xmm1, xmm4
movss xmm4, dword [eax]
mulss xmm0, xmm2
addss xmm4, xmm0
movss dword [edx - 4], xmm4
movss xmm4, dword [eax]
subss xmm4, xmm0
movss dword [ebp - 4], xmm4
mulss xmm1, xmm3
add ebx, edi
movaps xmm0, xmm1
subss xmm0, dword [ecx]
movss dword [edx], xmm0
movss xmm0, dword [ecx]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x28]
addss xmm0, xmm1
movss dword [ebp], xmm0
add ecx, edi
add edx, ebx
add ebp, ebx
add eax, edi
sub esi, 1
jne 0x100041c4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret