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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x2b4
mov eax, dword [0x1032e6c0]
xor eax, esp
mov dword [esp + 0x2b0], eax
mov eax, dword [ebp + 8]
mov ecx, 4
push ebx
push esi
mov esi, dword [ebp + 0x18]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 0x24], eax
movsd xmm5, qword [esi + 8]
lea eax, [esi + 0x18]
push edi
movaps xmm6, xmm5
nop
lea eax, [eax + 0x40]
minsd xmm6, qword [eax - 0x50]
maxsd xmm5, qword [eax - 0x50]
minsd xmm6, qword [eax - 0x40]
maxsd xmm5, qword [eax - 0x40]
minsd xmm6, qword [eax - 0x30]
maxsd xmm5, qword [eax - 0x30]
minsd xmm6, qword [eax - 0x20]
maxsd xmm5, qword [eax - 0x20]
sub ecx, 1
jne 0x10052420
mov edi, dword [ebp + 0x10]
xorps xmm4, xmm4
comisd xmm6, xmm4
movd xmm0, edi
cvtdq2pd xmm0, xmm0
jb 0x1005246f
comisd xmm0, xmm5
jb 0x1005246f
or ecx, 0xffffffff
jmp 0x10052488
comisd xmm6, xmm0
jae 0x10052c0b
comisd xmm4, xmm5
jae 0x10052c0b
mov ecx, 1
movsd xmm5, qword [esi]
xor eax, eax
movaps xmm6, xmm5
nop dword [eax]
nop word [eax + eax]
minsd xmm6, qword [esi + eax]
maxsd xmm5, qword [esi + eax]
minsd xmm6, qword [esi + eax + 0x10]
maxsd xmm5, qword [esi + eax + 0x10]
minsd xmm6, qword [esi + eax + 0x20]
maxsd xmm5, qword [esi + eax + 0x20]
minsd xmm6, qword [esi + eax + 0x30]
maxsd xmm5, qword [esi + eax + 0x30]
add eax, 0x40
cmp eax, 0x100
jl 0x100524a0
comisd xmm6, xmm4
mov ebx, dword [ebp + 0xc]
movd xmm0, ebx
cvtdq2pd xmm0, xmm0
jb 0x100524f4
comisd xmm0, xmm5
jb 0x100524f4
or edx, 0xffffffff
jmp 0x10052509
comisd xmm6, xmm0
jae 0x10052507
comisd xmm4, xmm5
jae 0x10052507
mov edx, 1
jmp 0x10052509
xor edx, edx
and edx, ecx
je 0x10052c0b
lea eax, [esi + 0x38]
mov ecx, 4
nop dword [eax]
movsd xmm0, qword [eax - 0x38]
movsd xmm2, qword [eax - 0x30]
movsd xmm7, qword [eax - 0x28]
movaps xmm6, xmm2
movsd xmm1, qword [eax - 0x20]
movsd xmm3, qword [eax - 0x10]
subsd xmm6, xmm1
subsd xmm3, qword [eax]
movsd qword [esp + 0x30], xmm0
subsd xmm0, xmm7
mulsd xmm6, xmm6
mulsd xmm0, xmm0
mulsd xmm3, xmm3
addsd xmm6, xmm0
movsd xmm0, qword [eax - 0x18]
subsd xmm0, qword [eax - 8]
movaps xmm5, xmm6
mulsd xmm0, xmm0
addsd xmm3, xmm0
comisd xmm5, xmm3
ja 0x1005257c
movaps xmm5, xmm3
movsd xmm0, qword [esp + 0x30]
subsd xmm2, qword [eax - 0x10]
subsd xmm0, qword [eax - 0x18]
mulsd xmm2, xmm2
mulsd xmm0, xmm0
addsd xmm2, xmm0
movsd xmm0, qword [0x102a4bb0]
mulsd xmm2, xmm0
comisd xmm5, xmm2
ja 0x100525ad
movaps xmm5, xmm2
subsd xmm1, qword [eax]
subsd xmm7, qword [eax - 8]
mulsd xmm1, xmm1
mulsd xmm7, xmm7
addsd xmm1, xmm7
mulsd xmm1, xmm0
comisd xmm5, xmm1
ja 0x100525cf
movaps xmm5, xmm1
movsd xmm0, qword [0x102a5538]
mulsd xmm5, xmm0
comisd xmm4, xmm5
ja 0x10052603
movaps xmm4, xmm6
comisd xmm4, xmm3
ja 0x100525ed
movaps xmm4, xmm3
comisd xmm4, xmm2
ja 0x100525f6
movaps xmm4, xmm2
comisd xmm4, xmm1
ja 0x100525ff
movaps xmm4, xmm1
mulsd xmm4, xmm0
add eax, 0x40
sub ecx, 1
jne 0x10052520
cmp edx, 0xffffffff
jne 0x1005261e
movsd xmm0, qword [0x102a5568]
jmp 0x10052626
movsd xmm0, qword [0x102a60b8]
comisd xmm4, xmm0
jb 0x10052bcd
movsd xmm5, qword [0x102a2d50]
movsd xmm3, qword [esi + 0x20]
movsd xmm1, qword [esi + 0x30]
movsd xmm4, qword [esi]
movsd xmm2, qword [esi + 0x10]
addsd xmm2, xmm3
movsd qword [esp + 0x38], xmm4
addsd xmm4, qword [esi + 0x10]
addsd xmm3, xmm1
movsd qword [esp + 0x168], xmm1
movsd xmm1, qword [esi + 0x38]
movsd qword [esp + 0x170], xmm1
mulsd xmm2, xmm5
mulsd xmm3, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0x158], xmm3
addsd xmm3, xmm2
movsd qword [esp + 0x48], xmm4
addsd xmm4, xmm2
movsd xmm2, qword [esi + 0x18]
mulsd xmm3, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0x148], xmm3
addsd xmm3, xmm4
movsd qword [esp + 0x58], xmm4
movsd xmm4, qword [esi + 8]
movsd qword [esp + 0x40], xmm4
addsd xmm4, qword [esi + 0x18]
mulsd xmm3, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0x138], xmm3
movsd qword [esp + 0x68], xmm3
movsd xmm3, qword [esi + 0x28]
addsd xmm2, xmm3
movsd qword [esp + 0x50], xmm4
addsd xmm3, xmm1
movsd xmm1, qword [esi + 0x70]
movsd qword [esp + 0x1a8], xmm1
mulsd xmm2, xmm5
mulsd xmm3, xmm5
addsd xmm4, xmm2
movsd qword [esp + 0x160], xmm3
addsd xmm3, xmm2
movsd xmm2, qword [esi + 0x50]
mulsd xmm4, xmm5
mulsd xmm3, xmm5
movsd qword [esp + 0x60], xmm4
movsd qword [esp + 0x150], xmm3
addsd xmm3, xmm4
movsd xmm4, qword [esi + 0x60]
addsd xmm2, xmm4
addsd xmm4, xmm1
movsd xmm1, qword [esi + 0x78]
movsd qword [esp + 0x1b0], xmm1
mulsd xmm3, xmm5
mulsd xmm2, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0x140], xmm3
movsd qword [esp + 0x70], xmm3
movsd xmm3, qword [esi + 0x40]
movsd qword [esp + 0x78], xmm3
addsd xmm3, qword [esi + 0x50]
movsd qword [esp + 0x198], xmm4
addsd xmm4, xmm2
mulsd xmm3, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0x88], xmm3
addsd xmm3, xmm2
movsd xmm2, qword [esi + 0x58]
movsd qword [esp + 0x188], xmm4
mulsd xmm3, xmm5
addsd xmm4, xmm3
movsd qword [esp + 0x98], xmm3
movsd xmm3, qword [esi + 0x48]
movsd qword [esp + 0x80], xmm3
mulsd xmm4, xmm5
movsd qword [esp + 0x178], xmm4
movsd qword [esp + 0xa8], xmm4
movsd xmm4, qword [esi + 0x68]
addsd xmm2, xmm4
mulsd xmm2, xmm5
addsd xmm3, qword [esi + 0x58]
addsd xmm4, xmm1
movsd xmm0, qword [esi + 0x90]
movsd xmm1, qword [esi + 0xb0]
movsd qword [esp + 0x1e8], xmm1
mulsd xmm3, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0x90], xmm3
addsd xmm3, xmm2
movsd qword [esp + 0x1a0], xmm4
addsd xmm4, xmm2
movaps xmm2, xmm0
mulsd xmm3, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0xa0], xmm3
movsd qword [esp + 0x190], xmm4
addsd xmm4, xmm3
movsd xmm3, qword [esi + 0x80]
movsd qword [esp + 0xb8], xmm3
addsd xmm3, xmm0
movsd xmm0, qword [esi + 0x98]
mulsd xmm4, xmm5
mulsd xmm3, xmm5
movsd qword [esp + 0x180], xmm4
movsd qword [esp + 0xb0], xmm4
movsd xmm4, qword [esi + 0xa0]
addsd xmm2, xmm4
movsd qword [esp + 0xc8], xmm3
addsd xmm4, xmm1
movsd xmm1, qword [esi + 0xb8]
movsd qword [esp + 0x1f0], xmm1
mulsd xmm2, xmm5
mulsd xmm4, xmm5
addsd xmm3, xmm2
movsd qword [esp + 0x1d8], xmm4
addsd xmm4, xmm2
movaps xmm2, xmm0
mulsd xmm3, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0xd8], xmm3
movsd qword [esp + 0x1c8], xmm4
addsd xmm4, xmm3
movsd xmm3, qword [esi + 0x88]
movsd qword [esp + 0xc0], xmm3
addsd xmm3, xmm0
movsd xmm0, qword [esi + 0xd0]
mulsd xmm4, xmm5
mulsd xmm3, xmm5
movsd qword [esp + 0x1b8], xmm4
movsd qword [esp + 0xe8], xmm4
movsd xmm4, qword [esi + 0xa8]
addsd xmm2, xmm4
movsd qword [esp + 0xd0], xmm3
addsd xmm4, xmm1
movsd xmm1, qword [esi + 0xf0]
movsd qword [esp + 0x228], xmm1
mulsd xmm2, xmm5
mulsd xmm4, xmm5
addsd xmm3, xmm2
movsd qword [esp + 0x1e0], xmm4
addsd xmm4, xmm2
movaps xmm2, xmm0
mulsd xmm3, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0xe0], xmm3
movsd qword [esp + 0x1d0], xmm4
addsd xmm4, xmm3
movsd xmm3, qword [esi + 0xc0]
movsd qword [esp + 0xf8], xmm3
addsd xmm3, xmm0
mulsd xmm4, xmm5
mulsd xmm3, xmm5
movsd qword [esp + 0x1c0], xmm4
movsd qword [esp + 0xf0], xmm4
movsd xmm4, qword [esi + 0xe0]
addsd xmm2, xmm4
movsd qword [esp + 0x108], xmm3
addsd xmm4, xmm1
mulsd xmm2, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0x218], xmm4
addsd xmm4, xmm2
movsd xmm0, qword [esi + 0xd8]
movsd xmm1, qword [esi + 0xf8]
addsd xmm3, xmm2
mov edi, dword [esp + 0x28]
lea edx, [esp + 0x238]
movaps xmm2, xmm0
movsd qword [esp + 0x230], xmm1
sub edx, edi
xor ecx, ecx
mulsd xmm4, xmm5
lea eax, [edi + 0x20]
mulsd xmm3, xmm5
movsd qword [esp + 0x208], xmm4
addsd xmm4, xmm3
movsd qword [esp + 0x118], xmm3
movsd xmm3, qword [esi + 0xc8]
movsd qword [esp + 0x100], xmm3
addsd xmm3, xmm0
mulsd xmm4, xmm5
mulsd xmm3, xmm5
movsd qword [esp + 0x1f8], xmm4
movsd qword [esp + 0x128], xmm4
movsd xmm4, qword [esi + 0xe8]
lea esi, [esp + 0x258]
addsd xmm2, xmm4
movsd qword [esp + 0x110], xmm3
addsd xmm4, xmm1
sub esi, edi
lea edi, [esp + 0x278]
sub edi, dword [esp + 0x28]
mulsd xmm2, xmm5
mulsd xmm4, xmm5
addsd xmm3, xmm2
movsd qword [esp + 0x220], xmm4
addsd xmm4, xmm2
mulsd xmm3, xmm5
mulsd xmm4, xmm5
movsd qword [esp + 0x120], xmm3
movsd qword [esp + 0x210], xmm4
addsd xmm4, xmm3
mulsd xmm4, xmm5
movsd qword [esp + 0x200], xmm4
movsd qword [esp + 0x130], xmm4
movsd xmm0, qword [eax - 0x20]
movsd xmm1, qword [eax]
movsd qword [esp + ecx*8 + 0x238], xmm0
inc ecx
addsd xmm0, qword [eax + 0x20]
movsd qword [eax + edx], xmm1
addsd xmm1, qword [eax + 0x40]
mulsd xmm0, xmm5
mulsd xmm1, xmm5
movsd qword [esi + eax], xmm0
movsd qword [edi + eax], xmm1
add eax, 8
cmp ecx, 4
jl 0x10052ae2
mov edi, dword [ebp + 0x14]
lea eax, [esp + 0x238]
mov esi, dword [ebp + 0x10]
push eax
lea eax, [esp + 0x3c]
push eax
push edi
push esi
push ebx
push dword [esp + 0x40]
call fcn.100523e0
mov ecx, dword [esp + 0x40]
add esp, 0x18
xor eax, eax
add ecx, 0x60
nop dword [eax]
movsd xmm0, qword [esp + eax*8 + 0x278]
lea ecx, [ecx + 8]
movsd qword [esp + eax*8 + 0x238], xmm0
movsd xmm0, qword [esp + eax*8 + 0x298]
movsd qword [esp + eax*8 + 0x258], xmm0
movsd xmm0, qword [ecx - 0x28]
movsd qword [esp + eax*8 + 0x278], xmm0
movsd xmm0, qword [ecx - 8]
movsd qword [esp + eax*8 + 0x298], xmm0
inc eax
cmp eax, 4
jl 0x10052b50
lea eax, [esp + 0x238]
push eax
lea eax, [esp + 0x13c]
push eax
push edi
push esi
push ebx
push dword [esp + 0x40]
call fcn.100523e0
add esp, 0x18
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2b0]
xor ecx, esp
call fcn.1026465b
mov esp, ebp
pop ebp
ret
movsd xmm0, qword [0x102a2928]
lea eax, [esp + 0x30]
push eax
maxsd xmm0, xmm4
sub esp, 8
movsd qword [esp], xmm0
call fcn.1026cbff
push dword [esp + 0x34]
mov eax, dword [esp + 0x40]
fstp st(0)
push esi
inc eax
sar eax, 1
push eax
push dword [ebp + 0x14]
push edi
push ebx
push dword [esp + 0x50]
call fcn.10052fe0
add esp, 0x28
mov ecx, dword [esp + 0x2bc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1026465b
mov esp, ebp
pop ebp
ret