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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x54
xorps xmm0, xmm0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x3c04]
mov esi, eax
xor eax, eax
cmp ecx, eax
mov dword [edi + 0x3d00], eax
mov dword [edi + 0x3cfc], eax
movss dword [edi + 0x3d04], xmm0
movss dword [edi + 0x3d08], xmm0
je 0x50f66a
cmp dword [edi + 0x3cf8], eax
je 0x50ef7d
call fcn.0050eaf0
call fcn.006287f0
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
lea ecx, [edi + 0x3c10]
mov edx, ecx
mov eax, esi
mov ebx, dword [eax]
mov dword [edx], ebx
mov ebx, dword [eax + 4]
mov dword [edx + 4], ebx
mov ebx, dword [eax + 8]
mov dword [edx + 8], ebx
mov eax, dword [eax + 0xc]
mov dword [edx + 0xc], eax
movss xmm0, dword [esi + 0x30]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esi + 0x34]
mov ebx, dword [esp + 0x30]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esi + 0x38]
lea eax, [edi + 0x3c20]
mov edx, eax
mov dword [edx], ebx
mov ebx, dword [esp + 0x34]
mov dword [edx + 4], ebx
movss dword [esp + 0x38], xmm0
mov ebx, dword [esp + 0x38]
mov dword [edx + 8], ebx
mov ebx, dword [esp + 0x3c]
mov dword [edx + 0xc], ebx
movss xmm1, dword [ecx + 8]
mulss xmm1, dword [eax + 8]
movss xmm0, dword [ecx + 4]
mulss xmm0, dword [eax + 4]
addss xmm1, xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [ecx]
addss xmm1, xmm0
xorps xmm0, xmm0
movaps xmm2, xmm0
subss xmm2, xmm1
movss dword [eax + 0x10], xmm2
movss xmm1, dword [esi + 0x10]
movss dword [esp + 0x30], xmm1
movss xmm1, dword [esi + 0x14]
mov ecx, dword [esp + 0x30]
movss dword [esp + 0x34], xmm1
movss xmm1, dword [esi + 0x18]
mov edx, dword [esp + 0x34]
movss dword [esp + 0x38], xmm1
lea eax, [edi + 0x3c40]
mov dword [eax], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
movss xmm1, dword [esi + 0x20]
movss dword [esp + 0x30], xmm1
movss xmm1, dword [esi + 0x24]
mov ecx, dword [esp + 0x30]
movss dword [esp + 0x34], xmm1
movss xmm1, dword [esi + 0x28]
mov edx, dword [esp + 0x34]
movss dword [esp + 0x38], xmm1
lea eax, [edi + 0x3c50]
mov dword [eax], ecx
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
movss xmm1, dword [esi + 0x30]
movss dword [esp + 0x30], xmm1
movss xmm1, dword [esi + 0x34]
mov ecx, dword [esp + 0x30]
lea eax, [edi + 0x3c60]
movss dword [esp + 0x34], xmm1
movss xmm1, dword [esi + 0x38]
movss dword [esp + 0x38], xmm1
mov dword [eax], ecx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x3c]
mov dword [eax + 8], ecx
mov ecx, dword [edi + 0x3c00]
mov dword [eax + 0xc], edx
xor eax, eax
cmp ecx, eax
mov dword [edi + 0x3c70], eax
mov dword [esp + 0x14], eax
jle 0x50f217
lea ebx, [edi + 0x198]
jmp 0x50f110
mov eax, dword [ebx + 0x3c]
test eax, eax
je 0x50f1fa
push 0
lea eax, [esp + 0x2c]
push eax
lea ecx, [ebx + 0x18]
push ecx
mov eax, esi
movss dword [ebx + 0xc], xmm0
mov dword [ebx + 0x38], 0
call fcn.00637940
test eax, eax
je 0x50f1f7
movss xmm1, dword [ebx - 4]
subss xmm1, dword [edi + 0x3c14]
movss xmm0, dword [ebx - 8]
subss xmm0, dword [edi + 0x3c10]
movss xmm2, dword [ebx]
subss xmm2, dword [edi + 0x3c18]
movaps xmm3, xmm1
movaps xmm1, xmm0
mulss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, xmm3
addss xmm1, xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
movss xmm2, dword [ebx - 0x194]
mulss xmm2, dword [edi + 0x3c24]
addss xmm1, xmm0
movss xmm0, dword [ebx - 0x190]
mulss xmm0, dword [edi + 0x3c28]
addss xmm0, xmm2
movss xmm2, dword [ebx - 0x198]
mulss xmm2, dword [edi + 0x3c20]
addss xmm0, xmm2
xorps xmm2, xmm2
comiss xmm2, xmm0
subss xmm2, xmm0
ja 0x50f1ce
movaps xmm2, xmm0
movss xmm0, dword [ebx + 8]
mov eax, dword [esp + 0x14]
mulss xmm0, xmm2
divss xmm0, xmm1
movss dword [ebx + 0xc], xmm0
mov edx, dword [edi + 0x3c70]
mov dword [edi + edx*4 + 0x3c74], eax
inc dword [edi + 0x3c70]
xorps xmm0, xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [edi + 0x3c00]
inc eax
add ebx, 0x1e0
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x50f110
mov ecx, dword [edi + 0x3c70]
xor eax, eax
test ecx, ecx
jle 0x50f2bd
mov ebx, ecx
lea edx, [edi + 0x3c74]
nop
mov ecx, dword [edx]
imul ecx, ecx, 0x1e0
movss xmm1, dword [ecx + edi + 0x1a4]
mov esi, eax
inc eax
cmp eax, dword [edi + 0x3c70]
mov dword [esp + 0x20], eax
mov ecx, eax
jge 0x50f296
lea eax, [edx + 4]
mov dword [esp + 0x14], eax
lea esp, [esp]
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
imul eax, eax, 0x1e0
movss xmm2, dword [eax + edi + 0x1a4]
comiss xmm2, xmm1
lea eax, [eax + edi + 0x1a4]
jbe 0x50f286
mov esi, ecx
movaps xmm1, xmm2
mov eax, dword [esp + 0x14]
inc ecx
add eax, 4
cmp ecx, ebx
mov dword [esp + 0x14], eax
jl 0x50f260
mov eax, dword [edx]
mov ecx, dword [edi + esi*4 + 0x3c74]
mov dword [edx], ecx
mov dword [edi + esi*4 + 0x3c74], eax
mov eax, dword [esp + 0x20]
mov ebx, dword [edi + 0x3c70]
add edx, 4
cmp eax, ebx
jl 0x50f230
mov eax, dword [edi + 0x3c70]
cmp eax, 8
jle 0x50f2cd
mov eax, 8
test eax, eax
mov dword [edi + 0x3c70], eax
mov dword [esp + 0x14], 0
jle 0x50f5f0
lea edx, [edi + 0x3c74]
mov dword [esp + 0x18], edx
lea ecx, [ecx]
mov eax, dword [esp + 0x18]
mov ebx, dword [eax]
imul ebx, ebx, 0x1e0
mov ecx, dword [ebx + edi + 0x20]
add ebx, edi
shl ecx, 5
lea edi, [ecx + ebx + 0x70]
mov eax, 1
mov ecx, 8
mov esi, ebx
mov dword [ebx + 0x1d0], eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebx + 0x20]
test ecx, ecx
jle 0x50f500
lea esi, [ebx + 0x38]
mov dword [esp + 0x20], eax
lea ecx, [ebx + 0x74]
mov dword [esp + 0x1c], esi
cmp eax, dword [ebx + 0x20]
mov edx, eax
jne 0x50f33f
xor edx, edx
mov eax, dword [ebp + 8]
movss xmm1, dword [esi]
subss xmm1, dword [eax + 0x3c18]
movss xmm3, dword [esi - 4]
subss xmm3, dword [eax + 0x3c14]
movss xmm6, dword [esi - 8]
subss xmm6, dword [eax + 0x3c10]
add edx, 3
add eax, 0x3c10
shl edx, 4
movss xmm0, dword [edx + ebx + 4]
subss xmm0, dword [eax + 4]
movss xmm5, dword [edx + ebx]
subss xmm5, dword [eax]
movss xmm2, dword [edx + ebx + 8]
subss xmm2, dword [eax + 8]
add edx, ebx
movaps xmm4, xmm3
mulss xmm4, xmm2
movaps xmm7, xmm1
mulss xmm7, xmm0
mulss xmm2, xmm6
mulss xmm0, xmm6
mulss xmm3, xmm5
subss xmm0, xmm3
subss xmm4, xmm7
movaps xmm3, xmm0
mulss xmm1, xmm5
subss xmm1, xmm2
mulss xmm3, xmm0
movss dword [esp + 0x38], xmm0
movaps xmm2, xmm4
mulss xmm2, xmm4
movaps xmm0, xmm1
addss xmm2, xmm3
mulss xmm0, xmm1
addss xmm2, xmm0
comiss xmm2, dword [0x738d48]
movss dword [esp + 0x30], xmm4
movss dword [esp + 0x34], xmm1
movss dword [esp + 0x24], xmm2
jbe 0x50f428
fld dword [esp + 0x24]
fsqrt
fdivr dword [0x7389bc]
fld dword [esp + 0x30]
fmul st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x38]
fmul st(1)
fstp dword [esp + 0x38]
fstp st(0)
mov edi, dword [esp + 0x30]
lea edx, [ecx - 4]
mov esi, edx
mov dword [esi], edi
mov edi, dword [esp + 0x34]
mov dword [esi + 4], edi
mov edi, dword [esp + 0x38]
mov dword [esi + 8], edi
mov edi, dword [esp + 0x3c]
mov dword [esi + 0xc], edi
movss xmm1, dword [ecx + 4]
movss xmm2, dword [ecx]
movss xmm0, dword [edx]
movaps xmm3, xmm1
mulss xmm3, xmm1
mulss xmm0, xmm0
movaps xmm1, xmm2
addss xmm0, xmm3
mulss xmm1, xmm2
addss xmm0, xmm1
comiss xmm0, dword [0x738cb0]
movss dword [esp + 0x28], xmm0
jb 0x50f48b
movss xmm1, dword [0x738c34]
comiss xmm1, xmm0
jae 0x50f4a9
fld dword [esp + 0x28]
fsqrt
fdivr dword [0x7389bc]
fld st(0)
fmul dword [edx]
fstp dword [edx]
fld st(0)
fmul dword [ecx]
fstp dword [ecx]
fmul dword [ecx + 4]
fstp dword [ecx + 4]
movss xmm1, dword [eax + 8]
movss xmm0, dword [eax + 4]
mulss xmm0, dword [ecx]
mulss xmm1, dword [ecx + 4]
mov esi, dword [esp + 0x1c]
addss xmm1, xmm0
movss xmm0, dword [eax]
mulss xmm0, dword [edx]
mov eax, dword [esp + 0x20]
addss xmm1, xmm0
xorps xmm0, xmm0
add esi, 0x10
inc eax
movaps xmm2, xmm0
subss xmm2, xmm1
movss dword [ecx + 0xc], xmm2
mov edi, dword [ebx + 0x20]
lea edx, [eax - 1]
add ecx, 0x20
cmp edx, edi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], eax
jl 0x50f336
mov eax, dword [ebp + 8]
movss xmm1, dword [eax + 0x3c18]
mulss xmm1, dword [ebx + 8]
movss xmm2, dword [eax + 0x3c14]
mulss xmm2, dword [ebx + 4]
add eax, 0x3c10
addss xmm1, xmm2
movss xmm2, dword [ebx]
mulss xmm2, dword [eax]
addss xmm1, xmm2
addss xmm1, dword [ebx + 0x10]
comiss xmm1, xmm0
jbe 0x50f58d
mov eax, dword [ebx + 0x20]
xor ecx, ecx
test eax, eax
jl 0x50f58d
lea eax, [ebx + 0x78]
jmp 0x50f550
movaps xmm1, xmm0
subss xmm1, dword [eax - 8]
movss dword [eax - 8], xmm1
movaps xmm1, xmm0
subss xmm1, dword [eax - 4]
movss dword [eax - 4], xmm1
movaps xmm1, xmm0
subss xmm1, dword [eax]
movss dword [eax], xmm1
movaps xmm1, xmm0
subss xmm1, dword [eax + 8]
movss dword [eax + 8], xmm1
mov edx, dword [ebx + 0x20]
inc ecx
add eax, 0x20
cmp ecx, edx
jle 0x50f550
mov eax, dword [ebx + 0x20]
test eax, eax
mov dword [esp + 0x20], 0
jl 0x50f5c9
lea edi, [ebx + 0x70]
lea esi, [ebx + 0x110]
lea ecx, [esi + 0x3c]
push edi
mov eax, esi
call fcn.0042b610
mov eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0x20]
inc eax
add esi, 0xc
add edi, 0x20
cmp eax, ecx
mov dword [esp + 0x20], eax
jle 0x50f5a5
xorps xmm0, xmm0
mov eax, dword [esp + 0x14]
mov ecx, dword [ebp + 8]
mov esi, dword [esp + 0x18]
mov edx, dword [ecx + 0x3c70]
inc eax
add esi, 4
cmp eax, edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], esi
mov edi, ecx
jl 0x50f2f0
lea edx, [esp + 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x28]
mov ebx, dword [0x7c1978]
mov esi, dword [0x7c197c]
mov ecx, dword [esp + 0x2c]
sub eax, ebx
sbb ecx, esi
mov esi, dword [0x956cac]
cmp ecx, esi
jg 0x50f633
mov edx, dword [0x956ca8]
jl 0x50f629
cmp eax, edx
jae 0x50f633
add edx, 1
adc esi, 0
mov eax, edx
mov ecx, esi
mov esi, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov dword [0x956ca8], eax
sub eax, esi
mov dword [0x956cac], ecx
sbb ecx, edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
fild qword [esp + 0x28]
fld qword [0x7c1968]
fmul dword [0x738aa4]
fdivp st(1)
fstp dword [edi + 0x3d08]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4