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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x854
mov al, byte [ecx + 0xbd7]
test al, al
movaps xmm0, xmmword [ecx + 0x40]
push ebx
push esi
push edi
mov dword [esp + 0x38], ecx
movaps xmmword [esp + 0x40], xmm0
mov dword [esp + 0x1c], 0
je 0x51f507
mov ax, word [ecx + 0x80]
cmp ax, 0x139
je 0x51f472
cmp ax, 0x13d
je 0x51f472
cmp ax, 0x13c
je 0x51f41d
cmp ax, 0x13e
je 0x51f41d
cmp ax, 0x13a
je 0x51f3c5
cmp ax, 0x13f
je 0x51f3c5
cmp ax, 0x13b
je 0x51f36d
cmp ax, 0x140
jne 0x51f52c
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
movss xmm1, dword [edx]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0
movss xmm1, dword [0x68b58c]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x24], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm1
movaps xmm1, xmmword [esp + 0x20]
jmp 0x51f4c5
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
movss xmm1, dword [edx]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0
movss xmm1, dword [0x68b500]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x24], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm1
movaps xmm1, xmmword [esp + 0x20]
jmp 0x51f4c5
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
movss xmm1, dword [edx]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x24], xmm1
movss xmm1, dword [0x68b58c]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm1
movaps xmm1, xmmword [esp + 0x20]
jmp 0x51f4c5
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
movss xmm1, dword [edx]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x24], xmm1
movss xmm1, dword [0x68b500]
movss dword [esp + 0x28], xmm1
movss xmm1, dword [0x68b4fc]
movss dword [esp + 0x2c], xmm1
movaps xmm1, xmmword [esp + 0x20]
movaps xmm3, xmmword [ecx + 0xc40]
movaps xmm4, xmmword [ecx + 0x20]
addps xmm3, xmm1
movaps xmm1, xmm3
movaps xmm3, xmmword [ecx + 0x30]
mulps xmm1, xmm2
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xaa
mulps xmm3, xmm2
movaps xmm2, xmm1
shufps xmm2, xmm1, 0x55
mulps xmm4, xmm2
movaps xmm2, xmm1
shufps xmm2, xmm1, 0
movaps xmm1, xmmword [ecx + 0x10]
addps xmm4, xmm3
mulps xmm1, xmm2
addps xmm1, xmm4
jmp 0x51f524
mov eax, dword [ebp + 0xc]
lea edx, [esp + 0x14]
mov dword [esp + 0x14], eax
movss xmm1, dword [edx]
movaps xmm2, xmm1
shufps xmm2, xmm1, 0
movaps xmm1, xmmword [ecx + 0x30]
mulps xmm1, xmm2
addps xmm0, xmm1
movaps xmmword [esp + 0x40], xmm0
mov eax, dword [0x725c54]
mov esi, dword [eax]
test esi, esi
mov dword [esp + 0x14], esi
jne 0x51f550
xor al, al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov esi, dword [esp + 0x14]
lea ebx, [ebx]
mov edi, dword [eax + 8]
mov eax, dword [edi]
mov edx, dword [eax + 0xc]
dec edx
mov eax, 0x55555556
imul edx
mov ebx, edx
shr ebx, 0x1f
xor eax, eax
add ebx, edx
cmp ebx, eax
mov dword [esp + 0x18], eax
jle 0x51f65d
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x1c]
lea esi, [eax + eax*4]
shl esi, 4
lea esi, [esp + esi + 0x100]
lea ebx, [ebx]
mov eax, dword [edi]
mov edx, dword [esp + 0x3c]
movaps xmm0, xmmword [eax + edx]
add eax, edx
movaps xmmword [esp + 0x50], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [esp + 0x60], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esp + 0x70], xmm0
movaps xmm0, xmmword [eax + 0x30]
movaps xmmword [esp + 0x80], xmm0
movaps xmm0, xmmword [ecx + 0x40]
push 0x3ef00000
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x58]
push edx
movaps xmmword [esp + 0x2c], xmm0
call fcn.00547bc0
add esp, 0xc
test al, al
je 0x51f639
cmp dword [esp + 0x1c], 0x20
jge 0x51f639
movaps xmm0, xmmword [esp + 0x50]
fild dword [esp + 0x18]
mov cx, word [edi + 4]
movzx dx, byte [edi + 6]
mov eax, dword [edi]
movaps xmmword [esi - 0x20], xmm0
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [esi - 0x10], xmm0
movaps xmm0, xmmword [esp + 0x70]
movaps xmmword [esi], xmm0
movaps xmm0, xmmword [esp + 0x80]
movaps xmmword [esi + 0x10], xmm0
fstp dword [esi + 0x24]
mov word [esi + 0x28], cx
mov ecx, dword [esp + 0x1c]
inc ecx
mov dword [esi + 0x20], eax
mov word [esi + 0x2a], dx
mov dword [esp + 0x1c], ecx
add esi, 0x50
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
inc eax
add edx, 0x30
cmp eax, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x3c], edx
jl 0x51f590
mov esi, dword [esp + 0x14]
mov edx, dword [esi]
test edx, edx
mov eax, esi
mov dword [esp + 0x14], edx
jne 0x51f546
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x51f53b
xor ebx, ebx
xor esi, esi
test eax, eax
mov dword [esp + 0x18], 0xbe200000
jle 0x51f53b
lea edi, [esp + 0x100]
jmp 0x51f6a0
movaps xmm0, xmmword [edi - 0x20]
movaps xmmword [esp + 0x50], xmm0
movaps xmm0, xmmword [edi - 0x10]
lea eax, [esp + 0xd0]
push eax
movaps xmmword [esp + 0x64], xmm0
movaps xmm0, xmmword [edi]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0xb8]
movaps xmmword [esp + 0x78], xmm0
movaps xmm0, xmmword [edi + 0x10]
push edx
lea ecx, [esp + 0x5c]
movaps xmmword [esp + 0x8c], xmm0
call fcn.006041e0
movaps xmm0, xmmword [esp + 0xb0]
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
movaps xmmword [esp + 0x20], xmm1
fld dword [esp + 0x20]
fcomp dword [0x693ad4]
fnstsw ax
test ah, 0x41
jne 0x51f7b2
fld dword [esp + 0x20]
fcomp dword [0x693ad0]
fnstsw ax
test ah, 5
jp 0x51f7b2
mov eax, dword [esp + 0x38]
movaps xmm1, xmmword [eax + 0x40]
movaps xmm2, xmm0
movaps xmm3, xmm1
shufps xmm2, xmm0, 0x55
shufps xmm3, xmm1, 0x55
subss xmm3, xmm2
movaps xmmword [esp + 0x90], xmm3
fld dword [esp + 0x90]
fabs
fcomp dword [0x693a88]
fnstsw ax
test ah, 5
jp 0x51f7b2
test esi, esi
je 0x51f793
fld dword [esp + 0x18]
fcomp dword [0x68c44c]
fnstsw ax
test ah, 5
jnp 0x51f793
movaps xmmword [esp + 0xc0], xmm0
fld dword [esp + 0xc0]
fabs
fld dword [esp + 0x18]
fabs
fxch st(1)
fxch st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x51f7b2
fld dword [esp + 0x20]
movaps xmmword [esp + 0xa0], xmm0
fadd dword [edi + 0x24]
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x18], ecx
mov ebx, esi
fstp dword [edi + 0x24]
mov eax, dword [esp + 0x1c]
inc esi
add edi, 0x50
cmp esi, eax
jl 0x51f6a0
fld dword [esp + 0x18]
fcomp dword [0x68c44c]
fnstsw ax
test ah, 0x41
jne 0x51f53b
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x51f82e
lea eax, [ebx + ebx*4]
shl eax, 4
movaps xmm0, xmmword [esp + eax + 0xe0]
mov edx, dword [esp + eax + 0x120]
lea eax, [esp + eax + 0xe0]
movaps xmmword [ecx], xmm0
movaps xmm0, xmmword [eax + 0x10]
movaps xmmword [ecx + 0x10], xmm0
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [ecx + 0x20], xmm0
movaps xmm0, xmmword [eax + 0x30]
movaps xmmword [ecx + 0x30], xmm0
mov dword [ecx + 0x40], edx
mov edx, dword [eax + 0x44]
mov dword [ecx + 0x44], edx
mov dx, word [eax + 0x48]
mov ax, word [eax + 0x4a]
mov word [ecx + 0x48], dx
mov word [ecx + 0x4a], ax
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 8