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

Disassembly:
sub esp, 0xd4
push edi
mov edi, ecx
call fcn.0056ddc0
test eax, eax
je 0x56de5e
xor al, al
pop edi
add esp, 0xd4
ret 0x10
mov ecx, dword [edi + 0x5c]
fldz
sub ecx, dword [edi + 0x58]
fst dword [esp + 0x1c]
mov eax, 0x2aaaaaab
fstp dword [esp + 0x18]
imul ecx
sar edx, 2
mov eax, edx
push ebx
xor ebx, ebx
shr eax, 0x1f
add eax, edx
mov byte [esp + 0xb], 0
mov dword [esp + 0x30], ebx
je 0x56e4c8
push ebp
xor ebp, ebp
push esi
mov dword [esp + 0x20], ebp
lea esp, [esp]
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0x18
mov ecx, dword [edi + 0x5c]
sub ecx, dword [edi + 0x58]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x56ded0
call fcn.006111cc
mov eax, dword [edi + 0x58]
mov ecx, dword [eax + ebp + 0x10]
sub ecx, dword [eax + ebp + 0xc]
add eax, ebp
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [edi + 0x5c]
sub ecx, dword [edi + 0x58]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
mov eax, 0x2aaaaaab
jae 0x56e485
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x56df17
call fcn.006111cc
mov esi, dword [edi + 0x58]
mov ecx, dword [esi + ebp + 0x10]
sub ecx, dword [esi + ebp + 0xc]
add esi, ebp
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x56df3f
call fcn.006111cc
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x1c]
lea esi, [edx + ecx - 0x18]
mov ecx, dword [edi + 0x5c]
sub ecx, dword [edi + 0x58]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x56df6a
call fcn.006111cc
mov ebp, dword [edi + 0x58]
add ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
add ecx, 2
mov dword [esp + 0x14], ecx
mov ecx, dword [ebp + 0x10]
sub ecx, dword [ebp + 0xc]
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0x14]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
dec ecx
cmp ecx, eax
jb 0x56dfa0
call fcn.006111cc
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x1c]
mov ecx, dword [edi + 0x5c]
sub ecx, dword [edi + 0x58]
lea ebp, [eax + edx - 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x56dfcb
call fcn.006111cc
mov ebx, dword [edi + 0x58]
add ebx, dword [esp + 0x20]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
mov eax, dword [esp + 0x18]
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add eax, 2
cmp eax, ecx
jb 0x56dff8
call fcn.006111cc
fld dword [ebp]
mov ecx, dword [ebx + 0xc]
fsub dword [esi]
add ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
fstp dword [esp + 0x84]
fld dword [ebp + 4]
fsub dword [esi + 4]
fstp dword [esp + 0x88]
fld dword [ebp + 8]
fsub dword [esi + 8]
fstp dword [esp + 0x8c]
fld dword [ecx]
fsub dword [esi]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fst dword [esp + 0x9c]
fld dword [ecx + 4]
fsub dword [esi + 4]
fstp dword [esp + 0xa0]
fld dword [ecx + 8]
fsub dword [esi + 8]
fstp dword [esp + 0xa4]
fld dword [esp + 0x8c]
fld st(0)
fld dword [esp + 0xa0]
fld st(0)
fmulp st(2)
fld dword [esp + 0xa4]
fld st(0)
fld dword [esp + 0x88]
fld st(0)
fmulp st(2)
fxch st(4)
fsubrp st(1)
fstp dword [esp + 0xb4]
fld dword [esp + 0x84]
fld st(0)
fmulp st(2)
fld dword [esp + 0x9c]
fld st(0)
fmulp st(6)
fxch st(2)
fsubrp st(5)
fxch st(4)
fstp dword [esp + 0xb8]
fmulp st(2)
fmulp st(2)
fsubrp st(1)
fstp dword [esp + 0xbc]
fld dword [edx]
fsub dword [esi]
fstp dword [esp + 0xcc]
fld dword [edx + 4]
fsub dword [esi + 4]
fstp dword [esp + 0xd0]
fld dword [edx + 8]
fsub dword [esi + 8]
fstp dword [esp + 0xd4]
fld dword [esp + 0xcc]
fld dword [esp + 0xb4]
fld st(0)
fmulp st(2)
fld dword [esp + 0xd0]
fld dword [esp + 0xb8]
fld st(0)
fmulp st(2)
fxch st(3)
faddp st(1)
fld dword [esp + 0xd4]
fld dword [esp + 0xbc]
fld st(0)
fmulp st(2)
fxch st(2)
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fchs
fld dword [eax]
fmul st(3)
fld st(4)
fmul dword [eax + 4]
faddp st(1)
fld dword [eax + 8]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x14]
fdiv dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [eax]
fld dword [esp + 0x14]
fld st(0)
fmulp st(2)
fxch st(1)
fstp dword [esp + 0x90]
fld st(0)
fmul dword [eax + 4]
fstp dword [esp + 0x94]
fmul dword [eax + 8]
fstp dword [esp + 0x98]
fld dword [edx]
fadd dword [esp + 0x90]
fstp dword [esp + 0x78]
fld dword [esp + 0x94]
fadd dword [edx + 4]
fstp dword [esp + 0x7c]
fld dword [esp + 0x98]
fadd dword [edx + 8]
fstp dword [esp + 0x80]
fld dword [esp + 0x78]
fld st(0)
fsub dword [esi]
fstp dword [esp + 0x6c]
fld dword [esp + 0x7c]
fld st(0)
fsub dword [esi + 4]
fstp dword [esp + 0x70]
fld dword [esp + 0x80]
fsub dword [esi + 8]
fstp dword [esp + 0x74]
fxch st(5)
fstp dword [esp + 0x3c]
fld dword [ecx + 4]
fsub dword [esi + 4]
fstp dword [esp + 0x40]
fld dword [ecx + 8]
fsub dword [esi + 8]
fstp dword [esp + 0x44]
fld dword [esp + 0x40]
fmul dword [esp + 0x74]
fld dword [esp + 0x44]
fmul dword [esp + 0x70]
fsubp st(1)
fstp dword [esp + 0xa8]
fld dword [esp + 0x44]
fmul dword [esp + 0x6c]
fld dword [esp + 0x74]
fmul dword [esp + 0x3c]
fsubp st(1)
fstp dword [esp + 0xac]
fld dword [esp + 0x70]
fmul dword [esp + 0x3c]
fld dword [esp + 0x40]
fmul dword [esp + 0x6c]
fsubp st(1)
fstp dword [esp + 0xb0]
fld dword [esp + 0xac]
fmul st(4)
fld dword [esp + 0xa8]
fmul st(4)
faddp st(1)
fld dword [esp + 0xb0]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fcomp dword [0x673244]
fnstsw ax
test ah, 5
jnp 0x56e464
fld st(0)
fsub dword [ecx]
fstp dword [esp + 0x2c]
fld st(4)
fsub dword [ecx + 4]
fstp dword [esp + 0x30]
fld dword [esp + 0x80]
fsub dword [ecx + 8]
fstp dword [esp + 0x34]
fld dword [ebp]
fsub dword [ecx]
fstp dword [esp + 0x54]
fld dword [ebp + 4]
fsub dword [ecx + 4]
fstp dword [esp + 0x58]
fld dword [ebp + 8]
fsub dword [ecx + 8]
fstp dword [esp + 0x5c]
fld dword [esp + 0x58]
fmul dword [esp + 0x34]
fld dword [esp + 0x5c]
fmul dword [esp + 0x30]
fsubp st(1)
fstp dword [esp + 0xc0]
fld dword [esp + 0x5c]
fmul dword [esp + 0x2c]
fld dword [esp + 0x34]
fmul dword [esp + 0x54]
fsubp st(1)
fstp dword [esp + 0xc4]
fld dword [esp + 0x30]
fmul dword [esp + 0x54]
fld dword [esp + 0x58]
fmul dword [esp + 0x2c]
fsubp st(1)
fstp dword [esp + 0xc8]
fld dword [esp + 0xc4]
fmul st(4)
fld dword [esp + 0xc0]
fmul st(4)
faddp st(1)
fld dword [esp + 0xc8]
fmul st(3)
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fcomp dword [0x673244]
fnstsw ax
test ah, 5
jnp 0x56e464
fld st(0)
fsub dword [ebp]
fstp dword [esp + 0x60]
fld st(4)
fsub dword [ebp + 4]
fstp dword [esp + 0x64]
fld dword [esp + 0x80]
fsub dword [ebp + 8]
fstp dword [esp + 0x68]
fld dword [esi]
fsub dword [ebp]
fstp dword [esp + 0x48]
fld dword [esi + 4]
fsub dword [ebp + 4]
fstp dword [esp + 0x4c]
fld dword [esi + 8]
fsub dword [ebp + 8]
fstp dword [esp + 0x50]
fld dword [esp + 0x4c]
fmul dword [esp + 0x68]
fld dword [esp + 0x50]
fmul dword [esp + 0x64]
fsubp st(1)
fstp dword [esp + 0xd8]
fld dword [esp + 0x50]
fmul dword [esp + 0x60]
fld dword [esp + 0x68]
fmul dword [esp + 0x48]
fsubp st(1)
fstp dword [esp + 0xdc]
fld dword [esp + 0x64]
fmul dword [esp + 0x48]
fld dword [esp + 0x4c]
fmul dword [esp + 0x60]
fsubp st(1)
fstp dword [esp + 0xe0]
fld dword [esp + 0xdc]
fmulp st(4)
fld dword [esp + 0xd8]
fmulp st(3)
fxch st(3)
faddp st(2)
fmul dword [esp + 0xe0]
faddp st(1)
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fcomp dword [0x673244]
fnstsw ax
test ah, 5
jnp 0x56e46a
cmp byte [esp + 0x13], 0
je 0x56e420
fld dword [edx + 4]
fsub st(2)
fld dword [edx]
fsub st(2)
fld dword [edx + 4]
fsub dword [esp + 0x24]
fld dword [edx]
fsub dword [esp + 0x28]
fld st(2)
fmulp st(3)
fld st(3)
fmulp st(4)
fxch st(2)
faddp st(3)
fld st(1)
fmulp st(2)
fmul st(0), st(0)
faddp st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x56e444
add dword [esp + 0x18], 3
fstp dword [esp + 0x28]
add dword [esp + 0x1c], 0x24
mov ebx, dword [esp + 0x38]
fstp dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov byte [esp + 0x13], 1
jmp 0x56deb0
add dword [esp + 0x18], 3
fstp st(0)
add dword [esp + 0x1c], 0x24
fstp st(0)
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x20]
mov byte [esp + 0x13], 1
jmp 0x56deb0
fstp st(2)
fstp st(2)
fstp st(1)
add dword [esp + 0x18], 3
fstp st(0)
add dword [esp + 0x1c], 0x24
fstp st(0)
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x20]
jmp 0x56deb0
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
inc ebx
add ebp, 0x18
add eax, edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x20], ebp
cmp ebx, eax
jb 0x56dea0
cmp byte [esp + 0x13], 0
pop esi
pop ebp
je 0x56e4c8
fld dword [esp + 0x20]
mov ecx, dword [esp + 0xe8]
mov edx, dword [esp + 0xec]
fstp dword [ecx]
fld dword [esp + 0x1c]
fstp dword [edx]
mov al, byte [esp + 0xb]
pop ebx
pop edi
add esp, 0xd4
ret 0x10
mov ecx, dword [ecx + 0x184]
test ecx, ecx
jne 0x5ae4e0
xor al, al
ret 0x10
jmp 0x56de40