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

Disassembly:
sub esp, 0x54
push ebx
push ebp
push esi
mov esi, ecx
mov eax, dword [esi + 8]
xor ebp, ebp
xor ecx, ecx
cmp eax, ebp
push edi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
jl 0x56ac11
mov edx, dword [esi + 0xc]
nop
xor edi, edi
cmp edx, ebp
jl 0x56ac09
xor eax, eax
jmp 0x56abe0
mov edx, dword [esi + 0x68]
mov edx, dword [edx + ecx*4]
mov dword [edx + eax + 0x2c], ebp
mov edx, dword [esi + 0x68]
mov edx, dword [edx + ecx*4]
mov dword [edx + eax + 0x30], ebp
mov edx, dword [esi + 0x68]
mov edx, dword [edx + ecx*4]
mov dword [edx + eax + 0x34], ebp
mov edx, dword [esi + 0xc]
inc edi
add eax, 0x50
cmp edi, edx
jle 0x56abe0
mov eax, dword [esi + 8]
inc ecx
cmp ecx, eax
jle 0x56abd0
mov eax, dword [esi + 8]
xor ebx, ebx
cmp eax, ebp
jl 0x56ad8f
mov edi, edi
cmp dword [esi + 0xc], ebp
mov dword [esp + 0x18], ebp
jl 0x56ad83
xor edi, edi
nop
mov eax, dword [esi + 0x68]
mov ecx, dword [eax + ebx*4]
cmp dword [ecx + edi + 0x38], ebp
jne 0x56ad6c
mov edx, dword [esi + 0x68]
mov eax, dword [edx + ebx*4]
mov ecx, dword [esi + 0x64]
mov edx, dword [ecx + ebx*4]
fld dword [edx + edi]
lea eax, [eax + edi + 0x30]
fmul dword [0x6ab9f8]
fadd dword [eax]
fstp dword [eax]
mov eax, dword [esi + 0x68]
mov ecx, dword [eax + ebx*4]
fld dword [ecx + edi + 0x14]
lea eax, [ecx + edi + 0x14]
fchs
lea ecx, [esp + 0x1c]
fld dword [eax + 4]
fchs
fld dword [eax + 8]
fchs
fstp dword [esp + 0x54]
mov edx, dword [esp + 0x54]
fxch st(1)
mov dword [esp + 0x24], edx
fstp dword [esp + 0x1c]
fstp dword [esp + 0x20]
call fcn.0056a350
mov eax, dword [esi + 0x68]
mov ecx, dword [eax + ebx*4]
fld dword [ecx + edi + 0x14]
lea eax, [ecx + edi]
fld dword [eax + 0x18]
fld dword [eax + 0x1c]
fld st(2)
fmulp st(3)
fld st(0)
fmul st(1)
faddp st(3)
fld st(1)
fmul st(2)
faddp st(3)
fxch st(2)
fsqrt
fstp st(2)
fstp st(0)
fld st(0)
fmulp st(1)
fld dword [esp + 0x1c]
fmul st(1)
fld dword [esp + 0x20]
fmul st(2)
fstp dword [esp + 0x44]
fld dword [esp + 0x24]
fmul st(2)
fstp dword [esp + 0x48]
fmul dword [0x6a8680]
fstp st(1)
fld dword [esp + 0x44]
fmul dword [0x6a8680]
fld dword [esp + 0x48]
fmul dword [0x6a8680]
fstp dword [esp + 0x3c]
fxch st(1)
fadd dword [eax + 0x2c]
fstp dword [eax + 0x2c]
fadd dword [eax + 0x30]
fstp dword [eax + 0x30]
fld dword [esp + 0x3c]
fadd dword [eax + 0x34]
fstp dword [eax + 0x34]
mov eax, dword [0x849678]
fld dword [0x84966c]
mov edx, dword [0x849674]
fld dword [0x849670]
mov dword [esp + 0x10], eax
fxch st(1)
mov dword [esp + 0x30], edx
fmul dword [esp + 0x10]
mov ecx, dword [esi + 0x68]
fstp dword [esp + 0x58]
mov edx, dword [ecx + ebx*4]
fmul dword [esp + 0x10]
lea eax, [edx + edi + 0x2c]
fld dword [esp + 0x30]
fmul dword [esp + 0x10]
fld dword [esp + 0x58]
fadd dword [eax]
fstp dword [eax]
fxch st(1)
fadd dword [eax + 4]
fstp dword [eax + 4]
fadd dword [eax + 8]
fstp dword [eax + 8]
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0xc]
inc eax
add edi, 0x50
cmp eax, ecx
mov dword [esp + 0x18], eax
jle 0x56ac30
mov eax, dword [esi + 8]
inc ebx
cmp ebx, eax
jle 0x56ac20
mov eax, dword [esi]
sub eax, ebp
je 0x56af8f
dec eax
jne 0x56b165
cmp dword [esi + 0x30], ebp
mov dword [esp + 0x10], ebp
jle 0x56b165
mov dword [esp + 0x18], ebp
mov ecx, dword [esp + 0x18]
mov eax, dword [esi + 0x78]
mov ebx, dword [eax + ecx]
mov ebp, dword [eax + ecx + 8]
mov edi, dword [esi + 0x68]
add eax, ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [edi + ebp*4]
mov edi, dword [edi + ebx*4]
lea ecx, [ecx + ecx*4]
shl ecx, 4
fld dword [edi + ecx + 8]
lea edi, [edi + ecx + 8]
shl edx, 4
fsub dword [eax + edx + 8]
lea eax, [eax + edx + 8]
fld dword [edi + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x20]
fld dword [edi + 8]
mov edi, dword [esi + 0x68]
fsub dword [eax + 8]
mov eax, dword [edi + ebp*4]
mov edi, dword [edi + ebx*4]
lea edi, [edi + ecx + 0x14]
fstp dword [esp + 0x24]
lea eax, [eax + edx + 0x14]
fld dword [edi]
fsub dword [eax]
fstp dword [esp + 0x28]
fld dword [edi + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x2c]
fld dword [edi + 8]
fsub dword [eax + 8]
fstp dword [esp + 0x30]
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
faddp st(1)
fld st(1)
fmul st(2)
faddp st(1)
fsqrt
fst dword [esp + 0x14]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 5
jnp 0x56af82
fld dword [0x6a92f8]
mov edi, dword [esp + 0x18]
fdiv dword [esp + 0x14]
mov eax, dword [esi + 0x78]
add eax, edi
mov dword [esp + 0x18], eax
fld st(1)
fmul st(1)
fld dword [esp + 0x20]
fmul st(2)
fstp dword [esp + 0x50]
fld dword [esp + 0x24]
fmul st(2)
fstp dword [esp + 0x54]
fld dword [esp + 0x30]
fmul dword [esp + 0x24]
fld dword [esp + 0x2c]
fmul dword [esp + 0x20]
faddp st(1)
fld dword [esp + 0x28]
fmul st(4)
faddp st(1)
fmul st(2)
fmul dword [eax + 0x14]
mov eax, dword [esi + 0x78]
fld dword [esp + 0x14]
fsub dword [edi + eax + 0x18]
mov eax, dword [esp + 0x18]
fmul dword [eax + 0x10]
mov eax, dword [esi + 0x68]
mov eax, dword [eax + ebx*4]
faddp st(1)
add ecx, eax
mov eax, dword [ecx + 0x38]
test eax, eax
fchs
fstp dword [esp + 0x14]
fmul dword [esp + 0x14]
fstp st(2)
fstp st(0)
fld dword [esp + 0x50]
fmul dword [esp + 0x14]
fstp dword [esp + 0x38]
fld dword [esp + 0x54]
fmul dword [esp + 0x14]
fstp dword [esp + 0x3c]
fld st(0)
fchs
fstp dword [esp + 0x40]
fld dword [esp + 0x38]
fchs
fstp dword [esp + 0x44]
fld dword [esp + 0x3c]
fchs
fstp dword [esp + 0x48]
jne 0x56af2b
fadd dword [ecx + 0x2c]
fstp dword [ecx + 0x2c]
fld dword [esp + 0x38]
fadd dword [ecx + 0x30]
fstp dword [ecx + 0x30]
fld dword [esp + 0x3c]
fadd dword [ecx + 0x34]
fstp dword [ecx + 0x34]
jmp 0x56af2d
fstp st(0)
mov ecx, dword [esi + 0x68]
mov eax, dword [ecx + ebp*4]
add edx, eax
mov eax, dword [edx + 0x38]
test eax, eax
jne 0x56af5a
fld dword [esp + 0x40]
fadd dword [edx + 0x2c]
fstp dword [edx + 0x2c]
fld dword [esp + 0x44]
fadd dword [edx + 0x30]
fstp dword [edx + 0x30]
fld dword [esp + 0x48]
fadd dword [edx + 0x34]
fstp dword [edx + 0x34]
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x30]
inc eax
add edi, 0x1c
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], edi
jl 0x56adb1
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
fstp st(0)
or eax, 0xffffffff
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret
cmp dword [esi + 0x30], ebp
mov dword [esp + 0x10], ebp
jle 0x56b165
mov dword [esp + 0x14], ebp
mov ecx, dword [esi + 0x78]
mov edx, dword [esp + 0x14]
mov ebx, dword [ecx + edx]
mov ebp, dword [ecx + edx + 8]
mov edi, dword [esi + 0x68]
lea eax, [ecx + edx]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
lea edx, [eax + eax*4]
mov eax, dword [edi + ebp*4]
mov edi, dword [edi + ebx*4]
lea ecx, [ecx + ecx*4]
shl ecx, 4
fld dword [edi + ecx + 8]
lea edi, [edi + ecx + 8]
shl edx, 4
fsub dword [eax + edx + 8]
lea eax, [eax + edx + 8]
fld dword [edi + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x20]
fld dword [edi + 8]
mov edi, dword [esi + 0x68]
fsub dword [eax + 8]
mov eax, dword [edi + ebp*4]
mov edi, dword [edi + ebx*4]
lea edi, [edi + ecx + 0x14]
fstp dword [esp + 0x24]
lea eax, [eax + edx + 0x14]
fld dword [edi]
fsub dword [eax]
fstp dword [esp + 0x40]
fld dword [edi + 4]
fsub dword [eax + 4]
fstp dword [esp + 0x44]
fld dword [edi + 8]
fsub dword [eax + 8]
fstp dword [esp + 0x48]
fld st(0)
fmul st(1)
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
faddp st(1)
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
faddp st(1)
fsqrt
fst dword [esp + 0x18]
fcomp dword [0x6a867c]
fnstsw ax
test ah, 5
jnp 0x56af82
fld dword [0x6a92f8]
mov edi, dword [esp + 0x14]
fdiv dword [esp + 0x18]
mov eax, dword [esi + 0x78]
add eax, edi
mov dword [esp + 0x14], eax
fld st(0)
fmul st(2)
fld dword [esp + 0x20]
fmul st(2)
fstp dword [esp + 0x50]
fld dword [esp + 0x24]
fmul st(2)
fstp dword [esp + 0x54]
fld dword [esp + 0x40]
fmul st(3)
fld dword [esp + 0x48]
fmul dword [esp + 0x24]
faddp st(1)
fld dword [esp + 0x44]
fmul dword [esp + 0x20]
faddp st(1)
fmul st(2)
fmul dword [eax + 0x14]
mov eax, dword [esi + 0x78]
fld dword [esp + 0x18]
fsub dword [eax + edi + 0x18]
mov eax, dword [esp + 0x14]
fmul dword [eax + 0x10]
mov eax, dword [esi + 0x68]
mov eax, dword [eax + ebx*4]
faddp st(1)
add ecx, eax
mov eax, dword [ecx + 0x38]
test eax, eax
fchs
fstp dword [esp + 0x18]
fmul dword [esp + 0x18]
fstp st(2)
fstp st(0)
fld dword [esp + 0x50]
fmul dword [esp + 0x18]
fstp dword [esp + 0x38]
fld dword [esp + 0x54]
fmul dword [esp + 0x18]
fstp dword [esp + 0x3c]
fld st(0)
fchs
fstp dword [esp + 0x28]
fld dword [esp + 0x38]
fchs
fstp dword [esp + 0x2c]
fld dword [esp + 0x3c]
fchs
fstp dword [esp + 0x30]
jne 0x56b11b
fadd dword [ecx + 0x2c]
fstp dword [ecx + 0x2c]
fld dword [esp + 0x38]
fadd dword [ecx + 0x30]
fstp dword [ecx + 0x30]
fld dword [esp + 0x3c]
fadd dword [ecx + 0x34]
fstp dword [ecx + 0x34]
jmp 0x56b11d
fstp st(0)
mov ecx, dword [esi + 0x68]
mov eax, dword [ecx + ebp*4]
add edx, eax
mov eax, dword [edx + 0x38]
test eax, eax
jne 0x56b14a
fld dword [esp + 0x28]
fadd dword [edx + 0x2c]
fstp dword [edx + 0x2c]
fld dword [esp + 0x2c]
fadd dword [edx + 0x30]
fstp dword [edx + 0x30]
fld dword [esp + 0x30]
fadd dword [edx + 0x34]
fstp dword [edx + 0x34]
mov eax, dword [esp + 0x10]
mov ecx, dword [esi + 0x30]
inc eax
add edi, 0x1c
cmp eax, ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
jl 0x56afa0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x54
ret