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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x6c
mov esi, dword [esp + 0x80]
mov eax, dword [esi + 0x24]
mov ebx, dword [esi + 0x4c]
mov edi, ebx
shr edi, 0x1f
fld dword [eax]
fld dword [eax + 4]
fxch st(1)
fmul st(0), st(0)
fxch st(1)
fmul st(0), st(0)
faddp st(1)
fst dword [esp + 0x28]
fstp dword [esp]
call fcn.007fc364
fucom st(0)
fnstsw ax
sahf
jnp 0x42f239
fstp st(0)
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.007fc364
add edi, ebx
mov eax, dword [esi + 0x1c]
fstp dword [eax]
mov eax, dword [esi + 0x24]
fld dword [eax + 8]
fld dword [eax + 0xc]
fxch st(1)
fmul st(0), st(0)
fxch st(1)
fmul st(0), st(0)
faddp st(1)
fst dword [esp + 0x28]
fstp dword [esp]
call fcn.007fc364
fucom st(0)
fnstsw ax
sahf
jnp 0x42f274
fstp st(0)
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.007fc364
sar edi, 1
mov dword [esp + 0x30], edi
mov eax, dword [esi + 0x1c]
fstp dword [eax + 4]
cmp ebx, 8
mov ecx, esi
jl 0x42f31e
mov eax, dword [esp + 0x30]
lea ebx, [eax - 1]
mov ebp, 2
fld dword [0x82504c]
fstp dword [esp + 0x38]
fld dword [0x825050]
fstp dword [esp + 0x34]
nop dword [eax + eax]
mov eax, dword [ecx + 0x24]
fld dword [esp + 0x38]
fld st(0)
fmul dword [eax + ebp*8]
fld dword [eax + ebp*8 - 8]
lea esi, [ebp + 1]
fadd dword [eax + ebp*8 + 8]
fld dword [esp + 0x34]
fmul st(1), st(0)
fxch st(2)
fsubrp st(1)
fxch st(2)
fmul dword [eax + ebp*8 + 4]
fld dword [eax + ebp*8 - 4]
fadd dword [eax + ebp*8 + 0xc]
fmulp st(2)
fsubrp st(1)
fxch st(1)
fmul st(0), st(0)
fxch st(1)
fmul st(0), st(0)
faddp st(1)
fst dword [esp + 0x28]
fstp dword [esp]
mov edi, ecx
call fcn.007fc364
fucom st(0)
fnstsw ax
sahf
jnp 0x42f310
fstp st(0)
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.007fc364
mov eax, dword [edi + 0x1c]
fstp dword [eax + ebp*4]
cmp esi, ebx
mov ebp, esi
mov ecx, edi
jl 0x42f2b0
mov eax, dword [ecx + 0x24]
mov edi, dword [esp + 0x30]
fld dword [eax + edi*8 - 8]
fld dword [eax + edi*8 - 4]
fxch st(1)
fmul st(0), st(0)
fxch st(1)
fmul st(0), st(0)
faddp st(1)
fst dword [esp + 0x28]
fstp dword [esp]
mov ebp, ecx
call fcn.007fc364
fucom st(0)
fnstsw ax
sahf
jnp 0x42f35a
fstp st(0)
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.007fc364
lea ebx, [edi + 1]
mov eax, dword [ebp + 0x1c]
fstp dword [eax + edi*4 - 4]
mov eax, dword [ebp + 0x24]
fld dword [eax + edi*8]
fld dword [eax + edi*8 + 4]
fxch st(1)
fmul st(0), st(0)
fxch st(1)
fmul st(0), st(0)
faddp st(1)
fst dword [esp + 0x28]
fstp dword [esp]
call fcn.007fc364
fucom st(0)
fnstsw ax
sahf
jnp 0x42f399
fstp st(0)
fld dword [esp + 0x28]
fstp dword [esp]
call fcn.007fc364
mov esi, dword [ebp + 0x1c]
fstp dword [esi + edi*4]
mov edi, dword [ebp + 0x20]
fld qword [ebp + 0x90]
fst dword [esp + 0x54]
fld dword [esp + 0x54]
fld1
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fstp dword [esp + 0x28]
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
fstp dword [esp]
call dword [0xb20674]
sub esp, 0xc
mov dword [esp + 0xc], ebx
mov dword [esp + 8], edi
fld dword [esp + 0x28]
fstp dword [esp + 4]
mov dword [esp], esi
call dword [0xb20690]
sub esp, 0x10
fld qword [ebp + 0x78]
fmul dword [0x825054]
mov eax, dword [ebp + 0x4c]
mov dword [esp + 0x58], eax
fild dword [esp + 0x58]
fst qword [esp + 0x28]
fmulp st(1)
fstp qword [esp]
call fcn.008117a8
fnstcw word [esp + 0x26]
movzx eax, word [esp + 0x26]
mov word [esp + 0x26], 0xc7f
fldcw word [esp + 0x26]
mov word [esp + 0x26], ax
fistp dword [esp + 0x64]
fldcw word [esp + 0x26]
mov edi, dword [esp + 0x64]
cmp edi, 1
jg 0x42f443
mov edi, 2
fld qword [ebp + 0x68]
fld qword [esp + 0x28]
fmulp st(1)
fstp qword [esp]
call fcn.008117a8
fnstcw word [esp + 0x24]
movzx eax, word [esp + 0x24]
mov word [esp + 0x24], 0xc7f
fldcw word [esp + 0x24]
mov word [esp + 0x24], ax
fistp dword [esp + 0x60]
fldcw word [esp + 0x24]
mov esi, dword [esp + 0x60]
fld qword [ebp + 0x70]
fld qword [esp + 0x28]
fmulp st(1)
fstp qword [esp]
call fcn.00811a40
fnstcw word [esp + 0x22]
movzx eax, word [esp + 0x22]
mov word [esp + 0x22], 0xc7f
fldcw word [esp + 0x22]
mov word [esp + 0x22], ax
fistp dword [esp + 0x5c]
fldcw word [esp + 0x22]
mov eax, dword [esp + 0x5c]
cmp edi, esi
mov ebp, edi
jge 0x42f4b7
mov ebp, esi
sub ebx, edi
cmp ebx, eax
jle 0x42f4bf
mov ebx, eax
mov eax, dword [esp + 0x80]
mov esi, eax
mov eax, dword [esi + 0x20]
lea eax, [eax + ebp*4]
mov ecx, 1
sub ecx, ebp
add ecx, ebx
lea edx, [esp + 0x68]
mov dword [esp + 8], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [0xb20684]
sub esp, 0xc
mov edx, esi
fld dword [edx + 0x98]
cmp ebp, ebx
fldz
fldz
fldz
jge 0x42f5b5
fstp st(2)
fstp st(0)
fstp st(0)
fld dword [esp + 0x68]
fmul dword [edx + 0xa0]
mov ecx, dword [edx + 0x20]
lea eax, [edi*4]
mov edx, ecx
sub edx, eax
lea edi, [ecx + edi*4]
xor esi, esi
nop dword [eax + eax]
fld dword [ecx + ebp*4]
fucom st(1)
fnstsw ax
sahf
jbe 0x42f560
fld st(2)
fmul dword [edx + ebp*4]
fxch st(1)
fucom st(1)
fstp st(1)
fnstsw ax
sahf
jbe 0x42f560
fld st(2)
fmul dword [edi + ebp*4]
fxch st(1)
fucom st(1)
fstp st(1)
fnstsw ax
sahf
jbe 0x42f564
fstp st(1)
mov esi, ebp
jmp 0x42f562
fstp st(0)
fldz
fstp st(0)
inc ebp
cmp ebp, ebx
jl 0x42f530
fstp st(1)
fstp st(0)
test esi, esi
mov edx, dword [esp + 0x80]
fldz
fldz
fldz
fldz
jle 0x42f5b5
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(0)
mov eax, dword [edx + 0x1c]
mov ecx, dword [edx + 0x20]
fld dword [ecx + esi*4]
fld dword [edx + 0x9c]
fld1
fld st(0)
fsub st(2)
fld dword [eax + esi*4]
fmul st(1), st(0)
fxch st(4)
fucom st(1)
fstp st(1)
fnstsw ax
sahf
fxch st(3)
jae 0x42f652
fstp st(3)
fstp st(1)
fstp st(0)
fstp st(0)
mov eax, dword [edx + 0x30]
cmp eax, 0xffffffff
mov eax, dword [edx + 0x3c]
je 0x42f60b
test eax, eax
jg 0x42f60f
fld qword [edx + 0x80]
fmul qword [edx + 0x88]
mov eax, dword [edx + 0x50]
mov dword [esp + 0x3c], eax
fidiv dword [esp + 0x3c]
fnstcw word [esp + 0x20]
movzx eax, word [esp + 0x20]
mov word [esp + 0x20], 0xc7f
fldcw word [esp + 0x20]
mov word [esp + 0x20], ax
fistp dword [esp + 0x40]
fldcw word [esp + 0x20]
mov eax, dword [esp + 0x40]
mov dword [edx + 0x3c], eax
test eax, eax
jle 0x42f64a
dec eax
mov dword [edx + 0x3c], eax
jne 0x42f64a
mov eax, dword [edx + 0x10]
mov ecx, dword [edx + 0x4c]
shl ecx, 2
mov dword [esp + 8], ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov esi, edx
call fcn.0080778b
mov dword [esi + 0x30], 0xffffffff
mov dword [esi + 0x3c], 0xffffffff
mov dword [esp], esi
call fcn.0042ede8
add esp, 0x6c
pop esi
pop edi
pop ebx
pop ebp
ret
fxch st(2)
faddp st(1)
fmulp st(1)
fucompp
fnstsw ax
sahf
mov eax, dword [edx + 0x30]
jb 0x42f5c0
mov ecx, 1
sub ecx, esi
add ecx, eax
cmp ecx, 3
jb 0x42f64a
mov dword [esp + 0x48], esi
fild dword [esp + 0x48]
mov ebx, dword [edx + 0x4c]
mov edi, dword [edx + 0x50]
mov dword [esp + 0x4c], ebx
fidiv dword [esp + 0x4c]
fld qword [edx + 0x78]
fmul dword [0x825054]
fld st(1)
fsub st(1)
fxch st(2)
faddp st(1)
fxch st(1)
fucom st(1)
fnstsw ax
sahf
fld st(1)
fadd qword [0x82505c]
jb 0x42f6b0
fstp st(1)
fldz
fstp st(0)
fld qword [0x825064]
fucom st(1)
fnstsw ax
sahf
ja 0x42f6d2
fstp st(0)
fld qword [0x82506c]
fxch st(1)
fucom st(1)
fnstsw ax
sahf
fxch st(1)
jbe 0x42f6d6
fstp st(1)
fldz
fstp st(0)
lea ebp, [ebx + 1]
fld qword [0x825064]
fucom st(2)
fnstsw ax
sahf
ja 0x42f6fb
fstp st(0)
fld qword [0x82506c]
fxch st(2)
fucom st(2)
fnstsw ax
sahf
fxch st(2)
jbe 0x42f6ff
fstp st(2)
fldz
fstp st(0)
sub ebp, edi
fucom st(1)
fnstsw ax
sahf
fld st(0)
fadd qword [0x825064]
jb 0x42f716
fstp st(2)
fldz
fstp st(0)
mov eax, dword [edx + 0x14]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], eax
fstp qword [esp]
fstp qword [esp + 8]
mov dword [esp + 0x1c], 1
mov dword [esp + 0x18], 1
call fcn.0042a254
test ebp, ebp
jle 0x42f775
mov eax, dword [esp + 0x80]
mov ecx, eax
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov edx, ebp
nop word cs:[eax + eax]
fld qword [ecx]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fstp dword [eax]
add ecx, 8
add eax, 4
dec edx
jne 0x42f760
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 0x4c]
cmp ebp, ecx
jge 0x42f7bb
mov eax, dword [eax + 0x10]
lea eax, [eax + ebp*4]
lea edx, [ebx + 2]
sub edx, edi
cmp ecx, edx
jge 0x42f794
mov ecx, edx
lea ecx, [edi + ecx + 0x3fffffff]
sub ecx, ebx
shl ecx, 2
mov dword [esp], eax
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
call fcn.0080778b
mov eax, dword [esp + 0x80]
mov dword [eax + 0x30], esi
mov dword [eax + 0x3c], 0xffffffff
mov dword [esp], eax
jmp 0x42f645