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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xf8
mov eax, dword [0x71a00c]
xor eax, esp
mov dword [esp + 0xf4], eax
push esi
mov esi, dword [ecx]
push edi
test esi, esi
je 0x52eccd
mov ecx, dword [esi + 0xf8]
mov dword [esp + 0x80], ecx
test ecx, ecx
je 0x52eccd
movups xmm0, xmmword [esi + 0x88]
movups xmm2, xmmword [esi + 0x68]
movups xmm1, xmmword [esi + 0x78]
movups xmmword [esp + 0xd0], xmm0
movups xmm0, xmmword [esi + 0x98]
movaps xmmword [esp + 0xc0], xmm2
movups xmmword [esp + 0x60], xmm0
shufps xmm2, xmm2, 0xaa
movaps xmmword [esp + 0x90], xmm1
movaps xmm0, xmm2
shufps xmm1, xmm1, 0xaa
subss xmm0, xmm1
call fcn.004909c0
movss xmm1, dword [0x6db820]
comiss xmm0, xmm1
jae 0x52e40c
movaps xmm0, xmm2
subss xmm0, dword [esp + 0xd8]
call fcn.004909c0
comiss xmm0, xmm1
jae 0x52e40c
subss xmm2, dword [esp + 0x68]
movaps xmm0, xmm2
call fcn.004909c0
comiss xmm0, xmm1
jae 0x52e40c
xor dl, dl
jmp 0x52e40e
mov dl, 1
movss xmm2, dword [esp + 0xd0]
cvttss2si eax, dword [esp + 0xc0]
mov byte [esp + 0x17], dl
movss xmm5, dword [esp + 0x94]
movss xmm4, dword [esp + 0xd4]
movss xmm0, dword [esp + 0x90]
movss xmm6, dword [esp + 0xc4]
cvttss2si ecx, xmm2
cmp eax, ecx
jne 0x52e47c
cvttss2si ecx, dword [esp + 0x60]
cvttss2si eax, xmm0
cmp eax, ecx
jne 0x52e47c
cvttss2si ecx, xmm5
cvttss2si eax, xmm6
cmp eax, ecx
jne 0x52e47c
cvttss2si ecx, dword [esp + 0x64]
cvttss2si eax, xmm4
cmp eax, ecx
jne 0x52e47c
xor al, al
jmp 0x52e47e
mov al, 1
movaps xmm1, xmm2
mov byte [esp + 0x16], al
subss xmm1, xmm0
movaps xmm7, xmm4
subss xmm7, xmm6
movaps xmm3, xmm5
subss xmm3, xmm4
movss dword [esp + 0x50], xmm1
movaps xmm1, xmm4
mulss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, xmm2
subss xmm1, xmm0
movss xmm0, dword [esp + 0xc0]
subss xmm0, xmm2
movss dword [esp + 0x3c], xmm1
movaps xmm1, xmm6
mulss xmm1, xmm2
subss xmm6, xmm5
movss dword [esp + 0x54], xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esp + 0xc0]
subss xmm1, xmm0
movss xmm0, dword [esp + 0xc4]
mulss xmm0, dword [esp + 0x90]
movss dword [esp + 0x40], xmm1
movss xmm1, dword [esp + 0x90]
subss xmm1, dword [esp + 0xc0]
movss dword [esp + 0x18], xmm1
movaps xmm1, xmm5
mulss xmm1, dword [esp + 0xc0]
subss xmm1, xmm0
movss xmm0, dword [esp + 0x64]
movss dword [esp + 0x4c], xmm1
movaps xmm1, xmm0
subss xmm1, xmm4
mulss xmm0, xmm2
movss dword [esp + 0x34], xmm1
movaps xmm1, xmm2
subss xmm1, dword [esp + 0x60]
movss dword [esp + 0x30], xmm1
movaps xmm1, xmm4
mulss xmm1, dword [esp + 0x60]
subss xmm1, xmm0
movaps xmm0, xmm5
subss xmm0, dword [esp + 0x64]
movss dword [esp + 0x2c], xmm1
movss xmm1, dword [esp + 0x60]
subss xmm1, dword [esp + 0x90]
movss dword [esp + 0x24], xmm0
movaps xmm0, xmm5
mulss xmm0, dword [esp + 0x60]
movss dword [esp + 0x20], xmm1
movss xmm1, dword [esp + 0x64]
mulss xmm1, dword [esp + 0x90]
subss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, xmm2
movss dword [esp + 0x1c], xmm1
movss xmm1, dword [esp + 0x18]
mulss xmm1, xmm4
addss xmm1, xmm0
movss xmm0, dword [esp + 0x20]
mulss xmm0, xmm4
addss xmm1, dword [esp + 0x4c]
movss dword [esp + 0x10], xmm0
movss xmm0, dword [esp + 0x24]
mulss xmm0, xmm2
movss dword [esp + 0x28], xmm1
movss xmm1, dword [esp + 0x10]
addss xmm1, xmm0
movaps xmm0, xmm1
movss xmm1, dword [0x6db820]
comiss xmm1, dword [esp + 0x28]
addss xmm0, dword [esp + 0x1c]
movss dword [esp + 0x10], xmm0
ja 0x52eccd
comiss xmm1, xmm0
ja 0x52eccd
movss xmm0, dword [0x6db910]
movss xmm1, dword [esp + 0x50]
divss xmm0, dword [esp + 0x28]
mulss xmm1, xmm0
mulss xmm3, xmm0
mulss xmm7, xmm0
movss dword [esp + 0x50], xmm1
movss xmm1, dword [esp + 0x3c]
mulss xmm1, xmm0
mulss xmm6, xmm0
movss dword [esp + 0xac], xmm3
movss dword [esp + 0x3c], xmm1
movss xmm1, dword [esp + 0x54]
mulss xmm1, xmm0
movss dword [esp + 0xb0], xmm7
movss dword [esp + 0xb4], xmm6
movss dword [esp + 0x54], xmm1
movss xmm1, dword [esp + 0x40]
mulss xmm1, xmm0
movss dword [esp + 0x40], xmm1
movss xmm1, dword [esp + 0x18]
mulss xmm1, xmm0
movss dword [esp + 0x18], xmm1
movss xmm1, dword [esp + 0x4c]
mulss xmm1, xmm0
movss dword [esp + 0x4c], xmm1
xorps xmm1, xmm1
movss dword [esp + 0x88], xmm1
movss dword [esp + 0x38], xmm1
movss dword [esp + 0x44], xmm1
movss dword [esp + 0x8c], xmm1
movss dword [esp + 0x84], xmm1
movss dword [esp + 0x48], xmm1
test al, al
je 0x52e765
movss xmm0, dword [0x6db910]
divss xmm0, dword [esp + 0x10]
movss xmm4, dword [esp + 0x34]
mulss xmm4, xmm0
movss dword [esp + 0x88], xmm4
movss xmm4, dword [esp + 0x30]
mulss xmm4, xmm0
movss dword [esp + 0x38], xmm4
movss xmm4, dword [esp + 0x2c]
mulss xmm4, xmm0
movss dword [esp + 0x44], xmm4
movss xmm4, dword [esp + 0x24]
mulss xmm4, xmm0
movss dword [esp + 0x8c], xmm4
movss xmm4, dword [esp + 0x20]
mulss xmm4, xmm0
movss dword [esp + 0x84], xmm4
movss xmm4, dword [esp + 0x1c]
mulss xmm4, xmm0
movss dword [esp + 0x48], xmm4
movss xmm4, dword [esp + 0xd4]
movss dword [esp + 0x58], xmm1
movss dword [esp + 0xa4], xmm1
movss dword [esp + 0x5c], xmm1
movss dword [esp + 0x30], xmm1
movss dword [esp + 0x2c], xmm1
movss dword [esp + 0x34], xmm1
movss dword [esp + 0xb8], xmm1
movss dword [esp + 0x28], xmm1
movss dword [esp + 0xbc], xmm1
test dl, dl
je 0x52e86e
movss xmm0, dword [0x6db910]
movaps xmm1, xmm0
movss xmm5, dword [esi + 0xb0]
divss xmm1, dword [esp + 0xcc]
movss xmm2, dword [esi + 0xb8]
mulss xmm5, xmm1
movss dword [esp + 0xb8], xmm1
movss dword [esp + 0x58], xmm5
movaps xmm5, xmm0
divss xmm5, dword [esp + 0x9c]
divss xmm0, dword [esp + 0xdc]
mulss xmm2, xmm5
movss dword [esp + 0x28], xmm5
movss dword [esp + 0xbc], xmm0
movss dword [esp + 0xa4], xmm2
movss xmm2, dword [esi + 0xc0]
mulss xmm2, xmm0
movss dword [esp + 0x5c], xmm2
movss xmm2, dword [esi + 0xb4]
mulss xmm2, xmm1
movss xmm1, dword [esi + 0xbc]
mulss xmm1, xmm5
movss xmm5, dword [esp + 0x94]
movss dword [esp + 0x30], xmm2
movss xmm2, dword [esp + 0xd0]
movss dword [esp + 0x2c], xmm1
movss xmm1, dword [esi + 0xc4]
mulss xmm1, xmm0
movss dword [esp + 0x34], xmm1
movss xmm0, dword [esp + 0xc0]
lea eax, [esp + 0xe0]
movss dword [esp + 0xd0], xmm0
lea ecx, [esp + 0xd0]
movss xmm0, dword [esp + 0x90]
push eax
movss dword [esp + 0xd8], xmm0
movss xmm0, dword [esp + 0x64]
push ecx
lea ecx, [esp + 0x98]
movss dword [esp + 0xe0], xmm2
movss dword [esp + 0xe4], xmm0
call fcn.0052ee50
movss xmm0, dword [esp + 0xcc]
lea eax, [esp + 0xe8]
lea ecx, [esp + 0xd8]
movss dword [esp + 0xd8], xmm0
movss xmm0, dword [esp + 0x6c]
push eax
push ecx
lea ecx, [esp + 0x70]
movss dword [esp + 0xe4], xmm5
movss dword [esp + 0xe8], xmm4
movss dword [esp + 0xec], xmm0
call fcn.0052ee50
cvttss2si eax, dword [esp + 0xa0]
add esp, 0x10
mov dword [esp + 0xd0], vtable.common::CRect.0
cvttss2si edi, dword [esp + 0x94]
mov dword [esp + 0xd4], eax
cvttss2si ecx, dword [esp + 0x60]
sub edi, eax
mov dword [esp + 0xdc], edi
cvttss2si eax, dword [esp + 0x64]
mov dword [esp + 0xd8], ecx
push dword [ebp + 0xc]
sub eax, ecx
lea ecx, [esp + 0xd4]
push dword [ebp + 8]
mov dword [esp + 0xe8], eax
call fcn.00403440
test al, al
je 0x52eccd
mov dl, byte [esp + 0x16]
xorps xmm0, xmm0
movss dword [esp + 0x7c], xmm0
movss dword [esp + 0x1c], xmm0
test dl, dl
je 0x52e9ad
movss xmm1, dword [esp + 0x88]
movss dword [esp + 0x7c], xmm1
movss xmm1, dword [esp + 0x8c]
movss dword [esp + 0x1c], xmm1
mov dh, byte [esp + 0x17]
movss dword [esp + 0x20], xmm0
movss dword [esp + 0x24], xmm0
test dh, dh
jne 0x52ea22
movaps xmm1, xmm7
movaps xmm0, xmm3
mulss xmm0, dword [esi + 0xb0]
mulss xmm1, dword [esi + 0xb8]
addss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [esi + 0xc0]
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esi + 0xb4]
movss dword [esp + 0x20], xmm1
movaps xmm1, xmm7
mulss xmm1, dword [esi + 0xbc]
addss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, dword [esi + 0xc4]
addss xmm1, xmm0
xorps xmm0, xmm0
movss dword [esp + 0x24], xmm1
movss xmm5, dword [esp + 0x38]
movaps xmm1, xmm0
movss dword [esp + 0x10], xmm0
movss dword [esp + 0xa8], xmm1
test dl, dl
je 0x52ea56
movss xmm1, dword [esp + 0x84]
movss dword [esp + 0x10], xmm5
movss dword [esp + 0xa8], xmm1
movaps xmm2, xmm0
cvttss2si eax, dword [esp + 0x60]
movd xmm4, eax
cvtdq2ps xmm4, xmm4
movaps xmm1, xmm4
mulss xmm1, dword [esp + 0x50]
addss xmm1, dword [esp + 0x3c]
movss dword [esp + 0x3c], xmm1
movaps xmm1, xmm4
mulss xmm1, dword [esp + 0x54]
addss xmm1, dword [esp + 0x40]
movss dword [esp + 0x40], xmm1
movaps xmm1, xmm4
mulss xmm1, dword [esp + 0x18]
addss xmm1, dword [esp + 0x4c]
movss dword [esp + 0x38], xmm1
movaps xmm1, xmm0
test dl, dl
je 0x52eacb
movaps xmm1, xmm4
movaps xmm2, xmm4
mulss xmm2, dword [esp + 0x84]
mulss xmm1, xmm5
addss xmm2, dword [esp + 0x48]
addss xmm1, dword [esp + 0x44]
movss dword [esp + 0x48], xmm0
movss dword [esp + 0x44], xmm0
cvttss2si ecx, dword [esp + 0x90]
movd xmm4, ecx
cvtdq2ps xmm4, xmm4
movaps xmm5, xmm4
mulss xmm4, xmm7
movd xmm7, ecx
mulss xmm5, xmm3
cvtdq2ps xmm7, xmm7
movaps xmm3, xmm7
mulss xmm3, xmm6
test dl, dl
je 0x52eb28
movaps xmm6, xmm7
mulss xmm6, dword [esp + 0x88]
movss dword [esp + 0x48], xmm6
movaps xmm6, xmm7
mulss xmm6, dword [esp + 0x8c]
movss dword [esp + 0x44], xmm6
mov ecx, dword [ebp + 0xc]
movss xmm7, dword [esp + 0x50]
sub ecx, eax
addss xmm5, dword [esp + 0x3c]
addss xmm4, dword [esp + 0x40]
addss xmm3, dword [esp + 0x38]
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
mulss xmm7, xmm6
addss xmm5, xmm7
movss xmm7, dword [esp + 0x54]
mulss xmm7, xmm6
addss xmm4, xmm7
movss xmm7, dword [esp + 0x18]
mulss xmm7, xmm6
movaps xmm6, xmm0
addss xmm3, xmm7
movaps xmm7, xmm0
test dl, dl
je 0x52ebb4
movss xmm6, dword [esp + 0x48]
movss xmm7, dword [esp + 0x10]
addss xmm6, xmm1
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
mulss xmm7, xmm1
addss xmm6, xmm7
movss xmm7, dword [esp + 0x44]
addss xmm7, xmm2
movss xmm2, dword [esp + 0xa8]
mulss xmm2, xmm1
addss xmm7, xmm2
movss dword [esp + 0x18], xmm0
movaps xmm2, xmm0
movss dword [esp + 0x10], xmm2
movaps xmm1, xmm0
test dh, dh
jne 0x52ec2b
movaps xmm0, xmm5
movaps xmm1, xmm4
mulss xmm0, dword [esi + 0xb0]
movaps xmm2, xmm4
mulss xmm1, dword [esi + 0xb8]
mulss xmm2, dword [esi + 0xbc]
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esi + 0xc0]
addss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, dword [esi + 0xb4]
addss xmm2, xmm0
movss dword [esp + 0x18], xmm1
movaps xmm0, xmm3
mulss xmm0, dword [esi + 0xc4]
addss xmm2, xmm0
xorps xmm0, xmm0
movss dword [esp + 0x10], xmm2
xor ecx, ecx
test edi, edi
jle 0x52eccd
cvttss2si esi, dword [esp + 0x90]
nop
test dl, dl
je 0x52ec75
comiss xmm0, xmm4
ja 0x52ec58
comiss xmm0, xmm3
ja 0x52ec58
comiss xmm0, xmm6
ja 0x52ec58
comiss xmm0, xmm7
jbe 0x52ec75
addss xmm5, dword [esp + 0xac]
addss xmm4, dword [esp + 0xb0]
addss xmm3, dword [esp + 0xb4]
jmp 0x52ec9c
lea eax, [ecx + esi]
cmp eax, dword [ebp + 8]
je 0x52ece5
addss xmm5, dword [esp + 0xac]
addss xmm4, dword [esp + 0xb0]
addss xmm3, dword [esp + 0xb4]
test dl, dl
je 0x52eca8
addss xmm7, dword [esp + 0x1c]
addss xmm6, dword [esp + 0x7c]
test dh, dh
jne 0x52ecc4
addss xmm2, dword [esp + 0x24]
addss xmm1, dword [esp + 0x20]
movss dword [esp + 0x10], xmm2
movss dword [esp + 0x18], xmm1
inc ecx
cmp ecx, edi
jl 0x52ec40
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0xf4]
xor ecx, esp
call fcn.0066bc45
mov esp, ebp
pop ebp
ret 0xc
cmp edi, ecx
jle 0x52eccd
cmp byte [ebp + 0x10], 0
jne 0x52ed07
mov al, 1
pop edi
pop esi
mov ecx, dword [esp + 0xf4]
xor ecx, esp
call fcn.0066bc45
mov esp, ebp
pop ebp
ret 0xc
test dh, dh
je 0x52ed9b
movss xmm2, dword [0x6db910]
movaps xmm0, xmm5
mulss xmm0, dword [esp + 0xb8]
movaps xmm1, xmm4
mulss xmm1, dword [esp + 0x28]
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esp + 0xbc]
addss xmm1, xmm0
movaps xmm0, xmm5
mulss xmm0, dword [esp + 0x58]
mulss xmm5, dword [esp + 0x30]
divss xmm2, xmm1
movaps xmm1, xmm4
mulss xmm1, dword [esp + 0xa4]
addss xmm1, xmm0
movaps xmm0, xmm3
mulss xmm0, dword [esp + 0x5c]
mulss xmm3, dword [esp + 0x34]
addss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, dword [esp + 0x2c]
addss xmm0, xmm5
mulss xmm1, xmm2
movss dword [esp + 0x18], xmm1
addss xmm0, xmm3
mulss xmm0, xmm2
movss dword [esp + 0x10], xmm0
mov edi, dword [esp + 0x80]
mov ecx, edi
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
call eax
mov edx, dword [edi]
mov ecx, edi
lea esi, [eax - 1]
mov edx, dword [edx + 0x14]
mov dword [esp + 0x30], esi
call edx
cvttss2si ecx, dword [esp + 0x18]
lea edx, [eax - 1]
lea eax, [esp + 0x34]
mov dword [esp + 0x5c], edx
cmp ecx, esi
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x30]
cmovge eax, ecx
lea esi, [esp + 0x2c]
mov dword [esp + 0x58], eax
lea ecx, [esp + 0x5c]
cvttss2si eax, dword [esp + 0x10]
cmp eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [edi]
cmovge esi, ecx
mov ecx, edi
mov eax, dword [eax + 0x1c]
call eax
mov ecx, dword [esp + 0x80]
mov edi, eax
mov esi, dword [esi]
push 0
push 0
mov edx, dword [ecx]
mov edx, dword [edx + 8]
call edx
xor ecx, ecx
test esi, esi
cmovg ecx, esi
mov esi, dword [esp + 0x58]
imul ecx, edi
pop edi
mov edx, dword [esi]
pop esi
add eax, ecx
xor ecx, ecx
test edx, edx
cmovg ecx, edx
cmp byte [eax + ecx*4 + 3], 0
mov ecx, dword [esp + 0xf4]
setne al
xor ecx, esp
call fcn.0066bc45
mov esp, ebp
pop ebp
ret 0xc