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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe4
push ebx
push esi
mov esi, ecx
movsd xmm0, qword [esi + 0x80]
push edi
mov edi, dword [ebp + 8]
subsd xmm0, qword [edi + 0xf0]
movsd qword [esp + 0x80], xmm0
movsd xmm0, qword [esi + 0x88]
subsd xmm0, qword [edi + 0xf8]
lea ebx, [edi + 0x138]
movsd qword [esp + 0x88], xmm0
movsd xmm0, qword [esi + 0x90]
subsd xmm0, qword [edi + 0x100]
push ebx
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x88]
movsd qword [esp + 0x98], xmm0
call fcn.004a8ae0
lea ecx, [esp + 0x50]
call fcn.004a88b0
fstp qword [esp + 0x10]
mov eax, dword [esi + 0x7c]
movsd xmm2, qword [edi + 0xc8]
movsd xmm0, qword [edi + 0x80]
movsd xmm1, qword [0x5fc860]
addsd xmm0, xmm2
movsd qword [esp + 0x18], xmm0
cmp eax, 3
ja case.default.0x523ca2
jmp dword [eax*4 + 0x524258]
movsd xmm2, qword [ebx]
movsd xmm3, qword [0x5fb270]
subsd xmm3, qword [0x5ff770]
andpd xmm2, xmm1
comisd xmm2, xmm3
jbe case.default.0x523ca2
movsd xmm2, qword [esp + 0x10]
subsd xmm2, xmm0
movsd xmm0, qword [esi]
andpd xmm2, xmm1
comisd xmm0, xmm2
mov eax, 3
ja 0x52424f
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movsd xmm2, qword [ebx + 8]
movsd xmm3, qword [0x5fb270]
subsd xmm3, qword [0x5ff770]
andpd xmm2, xmm1
comisd xmm2, xmm3
jbe case.default.0x523ca2
movsd xmm2, qword [esp + 0x10]
subsd xmm2, xmm0
movsd xmm0, qword [esi]
andpd xmm2, xmm1
comisd xmm0, xmm2
mov eax, 3
ja 0x52424f
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movsd xmm2, qword [ebx + 0x10]
movsd xmm3, qword [0x5fb270]
subsd xmm3, qword [0x5ff770]
andpd xmm2, xmm1
comisd xmm2, xmm3
jbe case.default.0x523ca2
movsd xmm2, qword [esp + 0x10]
subsd xmm2, xmm0
movsd xmm0, qword [esi]
andpd xmm2, xmm1
comisd xmm0, xmm2
mov eax, 3
ja 0x52424f
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movsd xmm0, qword [esi + 0xa0]
mulsd xmm0, qword [ebx + 8]
movsd xmm3, qword [ebx]
mulsd xmm3, qword [esi + 0x98]
addsd xmm0, xmm3
movsd xmm3, qword [esi + 0xa8]
mulsd xmm3, qword [ebx + 0x10]
addsd xmm0, xmm3
movsd xmm3, qword [0x5fb270]
subsd xmm3, qword [0x5ff770]
andpd xmm0, xmm1
comisd xmm0, xmm3
jbe case.default.0x523ca2
movsd xmm0, qword [esp + 0x10]
subsd xmm0, xmm2
andpd xmm0, xmm1
movsd xmm1, qword [esi]
comisd xmm1, xmm0
mov eax, 3
ja 0x52424f
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push ebx
lea edx, [esp + 0x24]
lea ecx, [esi + 0x98]
push edx
call fcn.004a8ae0
movq xmm0, qword [esp + 0x20]
movq qword [esp + 0x50], xmm0
movq xmm0, qword [esp + 0x28]
movq qword [esp + 0x58], xmm0
movq xmm0, qword [esp + 0x30]
lea ecx, [esp + 0x50]
movq qword [esp + 0x60], xmm0
call fcn.004a8b50
fstp st(0)
movsd xmm0, qword [esp + 0x58]
mulsd xmm0, qword [esp + 0x88]
movsd xmm1, qword [esp + 0x50]
mulsd xmm1, qword [esp + 0x80]
addsd xmm0, xmm1
movsd xmm1, qword [esp + 0x60]
mulsd xmm1, qword [esp + 0x90]
addsd xmm0, xmm1
movsd xmm1, qword [0x5fc860]
andpd xmm0, xmm1
movsd xmm1, qword [esi]
addsd xmm1, qword [esp + 0x18]
comisd xmm0, xmm1
movsd qword [esp + 0x10], xmm0
ja 0x52424a
push ebx
lea eax, [edi + 0x120]
push eax
lea ecx, [edi + 0x108]
push ecx
lea ecx, [esp + 0xb4]
call fcn.004e3930
lea ecx, [esp + 0xa8]
call fcn.004e38b0
movsd xmm0, qword [esi + 0x80]
subsd xmm0, qword [edi + 0xf0]
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esi + 0x88]
subsd xmm0, qword [edi + 0xf8]
lea edx, [esp + 0xa8]
movsd qword [esp + 0x28], xmm0
movsd xmm0, qword [esi + 0x90]
subsd xmm0, qword [edi + 0x100]
push edx
lea eax, [esp + 0x3c]
push eax
lea ecx, [esp + 0x28]
movsd qword [esp + 0x38], xmm0
call fcn.004a8910
lea ecx, [esp + 0xa8]
push ecx
lea edx, [esp + 0x6c]
push edx
lea ecx, [esi + 0x98]
call fcn.004a8910
movsd xmm4, qword [esp + 0x70]
movsd xmm7, qword [esp + 0x68]
movsd xmm3, qword [esp + 0x40]
movsd xmm6, qword [esp + 0x38]
movsd xmm5, qword [0x5fc860]
movapd xmm0, xmm4
movapd xmm1, xmm7
mulsd xmm1, xmm6
mulsd xmm0, xmm3
addsd xmm0, xmm1
movapd xmm1, xmm7
movapd xmm2, xmm4
mulsd xmm2, xmm4
mulsd xmm1, xmm7
addsd xmm1, xmm2
movsd xmm2, qword [esp + 0x10]
subsd xmm2, qword [esp + 0x18]
andpd xmm2, xmm5
comisd xmm2, xmmword [esi]
jbe 0x524020
movapd xmm2, xmm3
movapd xmm5, xmm6
mulsd xmm5, xmm6
movapd xmm6, xmm2
mulsd xmm6, xmm2
movsd xmm2, qword [esp + 0x18]
addsd xmm5, xmm6
movapd xmm6, xmm2
mulsd xmm6, xmm2
subsd xmm5, xmm6
movsd xmm6, qword [esp + 0x38]
movapd xmm3, xmm0
mulsd xmm3, xmm0
mulsd xmm5, xmm1
subsd xmm3, xmm5
sqrtsd xmm2, xmm3
movapd xmm3, xmm0
xorpd xmm3, xmmword [0x5fc740]
subsd xmm3, xmm2
subsd xmm2, xmm0
divsd xmm3, xmm1
divsd xmm2, xmm1
mov ebx, 2
mov dword [esp + 0x10], 0
movsd qword [esp + 0x20], xmm3
movsd qword [esp + 0x28], xmm2
jmp 0x52403b
mov ebx, 1
divsd xmm0, xmm1
xorpd xmm0, xmmword [0x5fc740]
mov dword [esp + 0x10], ebx
movsd qword [esp + 0x20], xmm0
mov eax, dword [esi + 0x78]
xor edi, edi
mov dword [esp + 0x18], eax
test ebx, ebx
jle 0x524154
lea esp, [esp]
fld qword [esp + edi*8 + 0x20]
fst qword [esp + 0xa0]
fld qword [esp + 0x70]
fmul st(1)
fadd qword [esp + 0x40]
fxch st(1)
fmul qword [esp + 0x68]
fadd qword [esp + 0x38]
call sub.MSVCR90.dll__CIatan2
fst qword [esp + 0x98]
xorps xmm3, xmm3
fabs
fld qword [0x5ff770]
fcompi st(1)
fstp st(0)
jbe 0x524092
movapd xmm1, xmm3
jmp 0x5240b1
movsd xmm1, qword [esp + 0x98]
comisd xmm3, xmm1
jbe 0x5240b1
movsd xmm0, qword [0x616648]
addsd xmm0, xmm1
movapd xmm1, xmm0
mov eax, dword [esi + 0x78]
movsd xmm2, qword [esp + 0xa0]
mov edx, dword [esi + 0x64]
lea ecx, [eax + eax*2]
movapd xmm0, xmm2
mulsd xmm0, qword [esp + 0x78]
addsd xmm0, qword [esp + 0x48]
movsd qword [edx + ecx*8 + 0x10], xmm2
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x64]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
movsd qword [eax], xmm1
movsd qword [eax + 8], xmm0
mov edx, 1
add dword [esi + 0x78], edx
cmp byte [0x618838], 0
mov ecx, dword [esi + 0x78]
jne 0x524138
ucomisd xmm1, xmm3
lahf
test ah, 0x44
jp 0x524138
lea eax, [ecx + ecx*2]
mov ecx, dword [esi + 0x64]
movsd qword [ecx + eax*8 + 0x10], xmm2
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x64]
movsd xmm1, qword [0x616648]
lea eax, [eax + eax*2]
lea eax, [ecx + eax*8]
movsd qword [eax], xmm1
movsd qword [eax + 8], xmm0
add dword [esi + 0x78], edx
add edi, edx
cmp edi, ebx
jl 0x524050
movsd xmm4, qword [esp + 0x70]
movsd xmm7, qword [esp + 0x68]
movsd xmm6, qword [esp + 0x38]
mov eax, dword [esi + 0x78]
mov edx, eax
sub edx, dword [esp + 0x18]
cmp edx, 2
jne 0x52423d
mov ecx, dword [esi + 0x64]
movsd xmm5, qword [esp + 0x78]
lea eax, [eax + eax*2]
movsd xmm3, qword [ecx + eax*8 - 0x20]
lea eax, [ecx + eax*8]
movapd xmm0, xmm3
movapd xmm1, xmm4
mulsd xmm1, xmm3
addsd xmm1, qword [esp + 0x40]
movapd xmm2, xmm5
mulsd xmm2, xmm3
addsd xmm2, qword [esp + 0x48]
mulsd xmm0, xmm7
addsd xmm0, xmm6
movsd xmm6, qword [eax - 8]
movapd xmm3, xmm6
mulsd xmm3, xmm7
addsd xmm3, qword [esp + 0x38]
mulsd xmm4, xmm6
addsd xmm4, qword [esp + 0x40]
mulsd xmm5, xmm6
addsd xmm5, qword [esp + 0x48]
subsd xmm3, xmm0
subsd xmm4, xmm1
subsd xmm5, xmm2
lea ecx, [esp + 0x20]
movsd qword [esp + 0x20], xmm3
movsd qword [esp + 0x28], xmm4
movsd qword [esp + 0x30], xmm5
call fcn.004a88b0
fld qword [esi]
fcompi st(1)
fstp st(0)
jbe 0x52423d
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x64]
movsd xmm1, qword [0x5fc860]
lea edx, [eax + eax*2 - 6]
movsd xmm0, qword [ecx + edx*8]
lea edi, [eax + eax*2]
subsd xmm0, qword [ecx + edi*8 - 0x18]
andpd xmm0, xmm1
movsd xmm1, qword [0x5ff700]
comisd xmm1, xmm0
jbe 0x52422f
dec eax
mov dword [esi + 0x78], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esp + 0x18]
cmp dword [esi + 0x78], eax
mov eax, dword [esp + 0x10]
jg 0x52424f
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4