Function at 0x582d90
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 0x582e01
mov edx, dword [esi + 0xc]
nop
xor edi, edi
cmp edx, ebp
jl 0x582df9
xor eax, eax
jmp 0x582dd0
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 0x582dd0
mov eax, dword [esi + 8]
inc ecx
cmp ecx, eax
jle 0x582dc0
mov eax, dword [esi + 8]
xor ebx, ebx
cmp eax, ebp
jl 0x582f7f
mov edi, edi
cmp dword [esi + 0xc], ebp
mov dword [esp + 0x18], ebp
jl 0x582f73
xor edi, edi
nop
mov eax, dword [esi + 0x68]
mov ecx, dword [eax + ebx*4]
cmp dword [ecx + edi + 0x38], ebp
jne 0x582f5c
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 [0x6bed88]
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.00582540
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 [0x6bb600]
fstp st(1)
fld dword [esp + 0x44]
fmul dword [0x6bb600]
fld dword [esp + 0x48]
fmul dword [0x6bb600]
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 [0x85d188]
fld dword [0x85d17c]
mov edx, dword [0x85d184]
fld dword [0x85d180]
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 0x582e20
mov eax, dword [esi + 8]
inc ebx
cmp ebx, eax
jle 0x582e10
mov eax, dword [esi]
sub eax, ebp
je 0x58317f
dec eax
jne 0x583355
cmp dword [esi + 0x30], ebp
mov dword [esp + 0x10], ebp
jle 0x583355
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 [0x6bb5fc]
fnstsw ax
test ah, 5
jnp 0x583172
fld dword [0x6bc4dc]
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 0x58311b
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 0x58311d
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 0x58314a
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 0x582fa1
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 0x583355
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 [0x6bb5fc]
fnstsw ax
test ah, 5
jnp 0x583172
fld dword [0x6bc4dc]
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 0x58330b
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 0x58330d
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 0x58333a
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 0x583190
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x54
ret