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

Disassembly:
test dword [0xae7f00], 0xffffff80
jne 0x87f214
test dword [0xae7f00], 0xffffffff
jne 0x87fc34
call fcn.0086b8a0
jmp fcn.0087f1ec
push ebx
mov ebx, esp
and esp, 0xffffffe0
push edi
push esi
push ebp
sub esp, 0x94
mov edi, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov esi, dword [ebx + 0x14]
mov dword [esp + 0x28], eax
mov ecx, dword [ebx + 0x18]
mov eax, 0xffffff9d
mov dword [esp + 0x2c], edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x48], eax
mov eax, 1
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], eax
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
mov ecx, edx
mov eax, dword [ecx]
mov dword [edi + 0x24], eax
fild dword [ecx]
fmul dword [0x99abc4]
fstp qword [esp]
call fcn.0084d1ac
fstp qword [esp + 0x58]
fld qword [0x99a920]
fstp qword [esp]
call fcn.0084d1ac
fld qword [esp + 0x58]
fdivrp st(1)
fadd qword [0x99a918]
fstp qword [esp]
call fcn.008c9b50
fadd qword [0x99a910]
fstp qword [esp + 0x18]
mov ebp, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x50], ecx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x87f2ff
mov eax, dword [esp + 0x50]
mov edx, eax
neg ecx
shld edx, ebp, 0xb
or edx, 0x80000000
add ecx, 0x41e
shr edx, cl
mov ebp, edx
neg ebp
cmp eax, 0
cmovge ebp, edx
jmp 0x87f301
xor ebp, ebp
mov dword [edi + 0x20], ebp
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fst dword [esp + 0x38]
mov dword [esp + 0x20], esi
fild dword [esp + 0x20]
fst qword [esp + 0x30]
fld dword [0x99abc0]
fmulp st(2)
fxch st(1)
fmul qword [0x99a918]
fdivrp st(1)
fstp qword [esp]
call fcn.0084d1ac
inc ebp
mov ecx, ebp
mov eax, 1
mov ebp, dword [esp + 0x2c]
shl eax, cl
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fst qword [esp + 0x58]
fild dword [ebp]
fxch st(2)
fmul qword [0x99a900]
fadd qword [0x99a908]
fmulp st(1)
fsubrp st(1)
fstp qword [esp + 0x18]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, eax
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x87f3aa
mov edx, eax
neg ecx
add ecx, 0x41e
shld edx, ebp, 0xb
or edx, 0x80000000
shr edx, cl
mov ebp, edx
neg ebp
cmp eax, 0
cmovge ebp, edx
jmp 0x87f3ac
xor ebp, ebp
mov dword [edi + 0x1c], ebp
mov dword [esp + 0x20], esi
fild dword [esp + 0x20]
fadd dword [0x99abc0]
fmul dword [esp + 0x38]
fmul qword [0x99a918]
fdiv qword [esp + 0x30]
fstp qword [esp]
call fcn.0084d1ac
fmul qword [0x99a900]
fsub qword [0x99a8f8]
fmul qword [esp + 0x58]
fadd qword [0x99a918]
fstp qword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x50], ecx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x87f43f
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x50]
mov eax, ebp
mov edx, dword [esp + 0x2c]
neg ecx
add ecx, 0x41e
shld eax, edx, 0xb
or eax, 0x80000000
shr eax, cl
mov ecx, eax
neg ecx
cmp ebp, 0
mov ebp, dword [esp + 0x68]
cmovge ecx, eax
jmp 0x87f441
xor ecx, ecx
sub ecx, ebp
inc ecx
lea ebp, [esi + esi]
mov dword [edi + 0x28], ecx
add ebp, ebp
push ebp
call fcn.00859c55
mov dword [edi + 0x10], eax
push ebp
call fcn.00859c55
mov dword [edi + 0x14], eax
push ebp
call fcn.00859c55
add esp, 0xc
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
mov dword [edi + 4], eax
xor eax, eax
xor ecx, ecx
mov dword [edi], esi
mov dword [edi + 0x2c], edx
fld qword [0x99a918]
fld qword [0x99a8f0]
fld qword [0x99a8e8]
fld qword [0x99a8e0]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fstp qword [esp + 0x38]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x2c], ebp
mov ebp, eax
mov dword [esp + 0x40], esi
mov dword [esp + 0x60], edi
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
lea esi, [ebp + 1]
mov dword [esp + 0x20], esi
fild dword [esp + 0x20]
fmul qword [0x99a8e8]
fadd qword [0x99a8f0]
fmul qword [0x99a8e0]
fstp qword [esp]
call fcn.008c9b28
fadd st(0)
fmul qword [esp + 0x30]
fdiv qword [esp + 0x38]
fadd qword [0x99a918]
fstp qword [esp]
call fcn.008c9b50
fstp qword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov ecx, edi
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x87f53a
mov edx, edi
neg ecx
add ecx, 0x41e
shld edx, eax, 0xb
or edx, 0x80000000
shr edx, cl
mov eax, edx
neg eax
cmp edi, 0
cmovge eax, edx
jmp 0x87f53c
xor eax, eax
add ebp, ebp
lea edx, [ebp + ebp]
mov ecx, dword [esp + 0x64]
fld dword [edx + 0xa2aca0]
cmp ecx, eax
jge 0x87fc25
mov edx, eax
sub edx, dword [esp + 0x64]
fld dword [ebp*2 + 0xa2aca4]
fsub st(1)
cmp edx, 6
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fdivp st(1)
jl 0x87f614
lea edi, [eax - 6]
mov edx, ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x50], esi
mov ebp, dword [esp + 0x60]
cmp edx, ecx
jge 0x87fbb8
fld qword [0x99a8c0]
fadd st(2)
mov esi, dword [ebp + 0x10]
fstp dword [esi + edx*4]
fadd st(1), st(0)
inc edx
cmp edx, ecx
jge 0x87fc14
fld qword [0x99a8c0]
fadd st(2)
mov esi, dword [ebp + 0x10]
fstp dword [esi + edx*4]
fadd st(1), st(0)
inc edx
cmp edx, ecx
jge 0x87fc03
fld qword [0x99a8c0]
fadd st(2)
mov esi, dword [ebp + 0x10]
fstp dword [esi + edx*4]
fadd st(1), st(0)
inc edx
cmp edx, ecx
jge 0x87fbf2
fld qword [0x99a8c0]
fadd st(2)
mov esi, dword [ebp + 0x10]
fstp dword [esi + edx*4]
fadd st(1), st(0)
inc edx
cmp edx, ecx
jge 0x87fbe1
fld qword [0x99a8c0]
fadd st(2)
mov esi, dword [ebp + 0x10]
fstp dword [esi + edx*4]
fadd st(1), st(0)
inc edx
cmp edx, edi
jle 0x87f587
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x64]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x60]
cmp edi, ecx
jge 0x87fbab
fld qword [0x99a8c0]
fadd st(2)
mov edx, dword [ebp + 0x10]
fstp dword [edx + edi*4]
fadd st(1), st(0)
inc edi
cmp edi, eax
jl 0x87f620
fstp st(1)
fstp st(0)
mov dword [esp + 0x64], edi
mov ebp, esi
cmp esi, 0x57
jl 0x87f4bc
mov ebp, dword [esp + 0x2c]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x60]
fld qword [0x99a918]
xor eax, eax
test esi, esi
mov dword [esp + 0x50], eax
jle 0x87f95b
lea ecx, [esi + esi]
mov eax, dword [esp + 0x4c]
cdq
idiv ecx
mov ecx, eax
imul ecx, ecx
fld dword [0x99abb8]
mov edx, dword [esp + 0x50]
fld qword [0x99a8d8]
imul edx, eax
fld qword [0x99a8d0]
fld dword [0x99abb4]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x68], edx
mov dword [esp + 0x64], ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x40], esi
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
mov dword [esp + 0x60], edi
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x68]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fst dword [esp + 0x70]
fld dword [0x99abbc]
fmulp st(1)
fstp qword [esp]
call fcn.0084d1fc
fstp qword [esp + 0x58]
mov eax, ebp
imul eax, eax
imul eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul dword [0x99abb8]
fstp qword [esp]
call fcn.0084d1fc
mov edi, dword [esp + 0x28]
mov edi, dword [edi + 0x78]
fld qword [esp + 0x58]
lea eax, [esi + edi]
cmp eax, ebp
fmul qword [0x99a8d8]
fxch st(1)
fmul qword [0x99a8d0]
faddp st(1)
fld dword [esp + 0x70]
fmul dword [0x99abb4]
faddp st(1)
fstp qword [esp + 0x58]
jge 0x87f855
mov eax, esi
imul eax, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fst dword [esp + 0x6c]
fld dword [0x99abbc]
fmulp st(1)
fstp qword [esp]
call fcn.0084d1fc
fstp qword [esp + 0x70]
mov eax, esi
imul eax, eax
imul eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmul dword [0x99abb8]
fstp qword [esp]
call fcn.0084d1fc
mov edx, dword [esp + 0x28]
fld qword [esp + 0x70]
fmul qword [0x99a8d8]
fxch st(1)
fmul qword [0x99a8d0]
fld dword [esp + 0x6c]
fmul dword [0x99abb4]
faddp st(2)
faddp st(1)
fld dword [edx + 0x70]
fsubr qword [esp + 0x58]
fxch st(1)
fcomp st(1)
fnstsw ax
sahf
jae 0x87fc2c
add edi, esi
mov eax, esi
imul eax, dword [esp + 0x4c]
mov dword [esp + 0x50], ebp
fstp dword [esp + 0x70]
mov ebp, edi
mov edi, eax
inc ebp
inc esi
mov edx, dword [esp + 0x50]
add edi, dword [esp + 0x4c]
cmp ebp, edx
jge 0x87fbda
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
fst dword [esp + 0x6c]
fld dword [0x99abbc]
fmulp st(1)
fstp qword [esp]
call fcn.0084d1fc
fstp qword [esp + 0x78]
mov edx, esi
imul edx, edx
imul edx, dword [esp + 0x64]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fmul dword [0x99abb8]
fstp qword [esp]
call fcn.0084d1fc
fld qword [esp + 0x78]
fmul qword [0x99a8d8]
fxch st(1)
fmul qword [0x99a8d0]
fld dword [esp + 0x6c]
fmul dword [0x99abb4]
faddp st(2)
faddp st(1)
fcomp dword [esp + 0x70]
fnstsw ax
sahf
jb 0x87f7d6
mov ebp, dword [esp + 0x50]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x44]
cmp eax, edx
jg 0x87f91c
mov eax, ebp
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x44]
add eax, dword [edx + 0x7c]
imul edi, dword [esp + 0x4c]
mov dword [esp + 0x50], ebp
mov dword [esp + 0x48], esi
mov ebp, eax
mov esi, dword [esp + 0x44]
cmp esi, ebp
jl 0x87f8ff
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
fst dword [esp + 0x70]
fld dword [0x99abbc]
fmulp st(1)
fstp qword [esp]
call fcn.0084d1fc
fstp qword [esp + 0x78]
mov edx, esi
imul edx, edx
imul edx, dword [esp + 0x64]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fmul dword [0x99abb8]
fstp qword [esp]
call fcn.0084d1fc
mov edx, dword [esp + 0x28]
fld dword [esp + 0x70]
fmul dword [0x99abb4]
fld qword [esp + 0x78]
fmul qword [0x99a8d8]
faddp st(1)
fxch st(1)
fmul qword [0x99a8d0]
faddp st(1)
fld dword [edx + 0x74]
fadd qword [esp + 0x58]
fcompp
fnstsw ax
sahf
jbe 0x87fbc9
add edi, dword [esp + 0x4c]
inc esi
mov edx, dword [esp + 0x40]
cmp esi, edx
jle 0x87f885
mov dword [esp + 0x44], esi
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
lea eax, [esi - 1]
shl eax, 0x10
mov edx, dword [esp + 0x44]
lea edi, [eax + edx - 1]
mov ecx, dword [esp + 0x60]
mov eax, dword [ecx + 0x18]
mov dword [eax + ebp*4], edi
mov eax, dword [esp + 0x68]
inc ebp
add eax, dword [esp + 0x4c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
cmp ebp, eax
jl 0x87f6c8
mov ebp, dword [esp + 0x2c]
mov esi, eax
mov edi, ecx
fld qword [0x99a918]
xor eax, eax
test esi, esi
jle 0x87fa35
fld dword [0x99abc0]
fld qword [0x99a908]
fld qword [0x99a900]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x40], esi
mov ebp, eax
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov dword [esp + 0x20], ebp
fild dword [esp + 0x20]
fadd dword [0x99abc0]
fmul qword [0x99a918]
fmul qword [esp + 0x38]
fdiv qword [esp + 0x30]
fstp qword [esp]
call fcn.0084d1ac
mov ecx, dword [edi + 0x20]
inc ecx
fmul qword [0x99a900]
mov edx, 1
fadd qword [0x99a908]
shl edx, cl
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fmulp st(1)
fadd qword [0x99a918]
fstp qword [esp + 0x18]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ecx, edx
shr ecx, 0x14
and ecx, 0x7ff
cmp ecx, 0x3fe
jle 0x87fa14
mov eax, edx
neg ecx
add ecx, 0x41e
shld eax, esi, 0xb
or eax, 0x80000000
shr eax, cl
mov ecx, eax
neg ecx
cmp edx, 0
cmovge ecx, eax
jmp 0x87fa16
xor ecx, ecx
mov edx, dword [edi + 0x14]
mov dword [edx + ebp*4], ecx
inc ebp
mov ecx, dword [esp + 0x40]
cmp ebp, ecx
jl 0x87f989
mov ebp, dword [esp + 0x2c]
mov esi, ecx
fld qword [0x99a918]
mov edx, dword [esp + 0x28]
lea eax, [edx + 0x24]
fmul qword [esp + 0x38]
mov ecx, dword [edx + 0x18]
fdiv qword [esp + 0x30]
mov dword [esp + 0xc], ecx
mov ecx, dword [edx + 0x1c]
mov edx, esi
mov dword [esp + 0x10], ecx
call fcn.0087ca38
mov dword [edi + 8], eax
push 0xc
call fcn.00859c55
pop ecx
mov dword [edi + 0xc], eax
xor eax, eax
mov dword [esp + 0x40], esi
mov esi, ebp
mov ebp, eax
push esi
call fcn.00859c55
pop ecx
mov edx, dword [edi + 0xc]
mov dword [edx + ebp*4], eax
inc ebp
cmp ebp, 3
jl 0x87fa71
mov esi, dword [esp + 0x40]
xor ebp, ebp
test esi, esi
jle 0x87fb9e
fld qword [0x99a920]
fld qword [0x99a918]
fld qword [esp + 0x30]
fadd st(0)
fstp qword [esp + 0x30]
fld qword [0x99a900]
fld qword [0x99a8f8]
fld dword [0x99abb0]
fld dword [0x99abac]
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov dword [esp + 0x20], ebp
fild dword [esp + 0x20]
fadd qword [0x99a918]
fmul qword [esp + 0x38]
fdiv qword [esp + 0x30]
fstp qword [esp]
call fcn.0084d1ac
fmul qword [0x99a900]
fsub qword [0x99a8f8]
fmul qword [0x99a920]
fld dword [0x99abb0]
fcom st(1)
fnstsw ax
sahf
fcmovb st(0), st(1)
fstp st(1)
fld dword [0x99abac]
fcom st(1)
fnstsw ax
sahf
mov eax, dword [edi + 4]
fcmovnbe st(0), st(1)
fstp st(1)
fst dword [esp + 0x18]
cvttss2si ecx, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
fsubp st(1)
fld qword [0x99a8c8]
fsub st(1)
fld dword [eax + ecx*4 + 0x84]
fmul st(1)
fld dword [eax + ecx*4 + 0x88]
fmul st(3)
faddp st(1)
mov eax, dword [edi + 0xc]
mov eax, dword [eax]
fstp dword [eax + ebp*4]
mov eax, dword [edi + 4]
fld dword [eax + ecx*4 + 0xc8]
fmul st(1)
fld dword [eax + ecx*4 + 0xcc]
fmul st(3)
faddp st(1)
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 4]
fstp dword [eax + ebp*4]
mov eax, dword [edi + 4]
fld dword [eax + ecx*4 + 0x10c]
fmulp st(1)
fld dword [eax + ecx*4 + 0x110]
fmulp st(2)
faddp st(1)
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 8]
fstp dword [eax + ebp*4]
inc ebp
cmp ebp, esi
jl 0x87facc
add esp, 0x94
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
fstp st(1)
fstp st(0)
mov dword [esp + 0x64], edi
jmp 0x87f645
fstp st(1)
fstp st(0)
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0x50]
jmp 0x87f645
mov dword [esp + 0x44], esi
mov ebp, dword [esp + 0x50]
mov esi, dword [esp + 0x48]
jmp 0x87f91c
mov ebp, edx
jmp 0x87f855
fstp st(1)
fstp st(0)
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0x50]
jmp 0x87f645
fstp st(1)
fstp st(0)
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0x50]
jmp 0x87f645
fstp st(1)
fstp st(0)
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0x50]
jmp 0x87f645
fstp st(1)
fstp st(0)
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0x50]
jmp 0x87f645
fstp st(0)
jmp 0x87f645
fstp st(0)
jmp 0x87f855
push ebx
mov ebx, esp
and esp, 0xffffffe0
push edi
push esi
push ebp
sub esp, 0x94
mov edi, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x38], eax
mov esi, dword [ebx + 0x10]
mov ebp, dword [ebx + 0x14]
mov ecx, dword [ebx + 0x18]
mov dword [esp + 0x68], ecx
mov eax, 0xffffff9d
mov dword [esp + 0x54], eax
mov eax, 1
mov dword [esp + 0x58], eax
xor eax, eax
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], eax
mov dword [edi + 0x28], eax
mov dword [edi + 0x2c], eax
mov eax, dword [esi]
mov dword [edi + 0x24], eax
fild dword [esi]
fmul dword [0x99aba8]
fstp qword [esp]
call fcn.0084d1ac
fstp qword [esp + 0x60]
push 0x40000000
push 0
call fcn.0084d1ac
add esp, 8
fld qword [0x99a8b0]
fld qword [esp + 0x60]
fdivrp st(2)
fadd st(1), st(0)
fxch st(1)
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
and eax, 0xfffff3ff
or eax, 0x400
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
frndint
fldcw word [esp + 0x18]
fadd qword [0x99a8a8]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp dword [esp + 0x28]
fldcw word [esp + 0x18]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
mov dword [edi + 0x20], eax
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fst dword [esp + 0x40]
mov dword [esp + 0x30], ebp
fild dword [esp + 0x30]
fst qword [esp + 0x48]
fld dword [0x99aba4]
fmulp st(2)
fxch st(2)
fmulp st(1)
fdivrp st(1)
fstp qword [esp]
call fcn.0084d1ac
mov ecx, dword [esp + 0x5c]
inc ecx
mov eax, 1
shl eax, cl
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fst qword [esp + 0x60]
fild dword [esi]
fxch st(2)
fmul qword [0x99a898]
fadd qword [0x99a8a0]
fmulp st(1)
fsubrp st(1)
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp dword [esp + 0x28]
fldcw word [esp + 0x18]
mov esi, dword [esp + 0x28]
mov dword [edi + 0x1c], esi
mov dword [esp + 0x30], ebp
fild dword [esp + 0x30]
fadd dword [0x99aba4]
fmul dword [esp + 0x40]
fmul qword [0x99a8b0]
fdiv qword [esp + 0x48]
fstp qword [esp]
call fcn.0084d1ac
fmul qword [0x99a898]
fadd qword [0x99a8a0]
fmul qword [esp + 0x60]
fadd qword [0x99a8b0]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp dword [esp + 0x28]
fldcw word [esp + 0x18]
mov eax, dword [esp + 0x28]
sub eax, esi
inc eax
mov dword [edi + 0x28], eax
lea esi, [ebp + ebp]
add esi, esi
push esi
call fcn.00859c55
mov dword [edi + 0x10], eax
push esi
call fcn.00859c55
mov dword [edi + 0x14], eax
push esi
call fcn.00859c55
add esp, 0xc
mov dword [edi + 0x18], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 4], eax
mov dword [edi], ebp
mov ecx, dword [esp + 0x68]
mov dword [edi + 0x2c], ecx
xor edx, edx
xor eax, eax
fld qword [0x99a8b0]
fld qword [0x99a890]
fld qword [0x99a888]
fld qword [0x99a880]
mov dword [esp + 0x30], ecx
fild dword [esp + 0x30]
fstp qword [esp + 0x40]
mov dword [esp + 0x3c], esi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x6c], edi
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov ebp, eax
mov esi, edx
lea edi, [esi + 1]
mov dword [esp + 0x30], edi
fild dword [esp + 0x30]
fmul qword [0x99a888]
fadd qword [0x99a890]
fmul qword [0x99a880]
fstp qword [esp]
call fcn.008c9b28
fadd st(0)
fmul qword [esp + 0x48]
fdiv qword [esp + 0x40]
fadd qword [0x99a8b0]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
and eax, 0xfffff3ff
or eax, 0x400
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp dword [esp + 0x28]
fldcw word [esp + 0x18]
mov eax, dword [esp + 0x28]
lea ecx, [esi + esi]
fld dword [esi*4 + 0xa2aca0]
cmp ebp, eax
jge 0x88059e
mov edx, eax
sub edx, ebp
fld dword [ecx*2 + 0xa2aca4]
fsub st(1)
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fdivp st(1)
cmp edx, 6
jl 0x87ff98
lea esi, [eax - 6]
mov dword [esp + 0x5c], edi
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x6c]
cmp ebp, edx
jge 0x880545
fld qword [0x99a860]
fadd st(2)
mov edi, dword [ecx + 0x10]
fstp dword [edi + ebp*4]
fadd st(1), st(0)
inc ebp
cmp ebp, edx
jge 0x880591
fld qword [0x99a860]
fadd st(2)
mov edi, dword [ecx + 0x10]
fstp dword [edi + ebp*4]
fadd st(1), st(0)
inc ebp
cmp ebp, edx
jge 0x880584
fld qword [0x99a860]
fadd st(2)
mov edi, dword [ecx + 0x10]
fstp dword [edi + ebp*4]
fadd st(1), st(0)
inc ebp
cmp ebp, edx
jge 0x880577
fld qword [0x99a860]
fadd st(2)
mov edi, dword [ecx + 0x10]
fstp dword [edi + ebp*4]
fadd st(1), st(0)
inc ebp
cmp ebp, edx
jge 0x88056a
fld qword [0x99a860]
fadd st(2)
mov edi, dword [ecx + 0x10]
fstp dword [edi + ebp*4]
fadd st(1), st(0)
inc ebp
cmp ebp, esi
jle 0x87ff0f
mov edi, dword [esp + 0x5c]
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x6c]
cmp ebp, ecx
jge 0x88053c
fld qword [0x99a860]
fadd st(2)
mov edx, dword [esi + 0x10]
fstp dword [edx + ebp*4]
fadd st(1), st(0)
inc ebp
cmp ebp, eax
jl 0x87ffa0
fstp st(1)
fstp st(0)
mov esi, edi
cmp edi, 0x57
jl 0x87fe72
mov esi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x50]
mov edi, dword [esp + 0x6c]
fld qword [0x99a8b0]
xor eax, eax
mov dword [esp + 0x5c], eax
test ebp, ebp
jle 0x880304
lea ecx, [ebp + ebp]
mov eax, dword [esp + 0x68]
cdq
idiv ecx
mov ecx, eax
imul ecx, ecx
fld dword [0x99ab9c]
fld qword [0x99a878]
fld qword [0x99a870]
fld dword [0x99ab98]
mov edx, dword [esp + 0x5c]
imul edx, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x6c], edi
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fst dword [esp + 0x80]
fld dword [0x99aba0]
fmulp st(1)
fstp qword [esp]
call fcn.0084d1fc
fstp qword [esp + 0x60]
mov eax, ebp
imul eax, eax
imul eax, dword [esp + 0x68]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmul dword [0x99ab9c]
fstp qword [esp]
call fcn.0084d1fc
fld qword [esp + 0x60]
fmul qword [0x99a878]
fxch st(1)
fmul qword [0x99a870]
faddp st(1)
fld dword [esp + 0x80]
fmul dword [0x99ab98]
faddp st(1)
fstp qword [esp + 0x60]
mov edi, dword [esp + 0x38]
mov edi, dword [edi + 0x78]
lea eax, [esi + edi]
cmp eax, ebp
jge 0x8801ee
mov eax, esi
imul eax, dword [esp + 0x70]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fst dword [esp + 0x78]
fld dword [0x99aba0]
fmulp st(1)
fstp qword [esp]
call fcn.0084d1fc
fstp qword [esp + 0x80]
mov eax, esi
imul eax, eax
imul eax, dword [esp + 0x68]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmul dword [0x99ab9c]
fstp qword [esp]
call fcn.0084d1fc
fld qword [esp + 0x80]
fmul qword [0x99a878]
fxch st(1)
fmul qword [0x99a870]
fld dword [esp + 0x78]
fmul dword [0x99ab98]
faddp st(2)
faddp st(1)
mov edx, dword [esp + 0x38]
fld dword [edx + 0x70]
fsubr qword [esp + 0x60]
fxch st(1)
fcomp st(1)
fnstsw ax
sahf
jae 0x8805a5
add edi, esi
mov eax, esi
imul eax, dword [esp + 0x70]
mov dword [esp + 0x5c], ebp
fstp dword [esp + 0x80]
mov ebp, edi
mov edi, eax
inc ebp
add edi, dword [esp + 0x70]
inc esi
mov edx, dword [esp + 0x5c]
cmp ebp, edx
jge 0x880563
mov dword [esp + 0x30], edi
fild dword [esp + 0x30]
fst dword [esp + 0x78]
fld dword [0x99aba0]
fmulp st(1)
fstp qword [esp]
call fcn.0084d1fc
fstp qword [esp + 0x88]
mov edx, esi
imul edx, edx
imul edx, dword [esp + 0x68]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fmul dword [0x99ab9c]
fstp qword [esp]
call fcn.0084d1fc
fld qword [esp + 0x88]
fmul qword [0x99a878]
fxch st(1)
fmul qword [0x99a870]
fld dword [esp + 0x78]
fmul dword [0x99ab98]
faddp st(2)
faddp st(1)
fcomp dword [esp + 0x80]
fnstsw ax
sahf
jb 0x880162
mov ebp, dword [esp + 0x5c]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
cmp eax, edx
jg 0x8802c5
mov eax, ebp
mov edx, dword [esp + 0x38]
add eax, dword [edx + 0x7c]
mov edi, dword [esp + 0x58]
imul edi, dword [esp + 0x70]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x54], esi
mov ebp, eax
mov esi, dword [esp + 0x58]
cmp esi, ebp
jl 0x8802a8
mov dword [esp + 0x30], edi
fild dword [esp + 0x30]
fst dword [esp + 0x80]
fld dword [0x99aba0]
fmulp st(1)
fstp qword [esp]
call fcn.0084d1fc
fstp qword [esp + 0x88]
mov edx, esi
imul edx, edx
imul edx, dword [esp + 0x68]
mov dword [esp + 0x30], edx
fild dword [esp + 0x30]
fmul dword [0x99ab9c]
fstp qword [esp]
call fcn.0084d1fc
fld dword [esp + 0x80]
fmul dword [0x99ab98]
fld qword [esp + 0x88]
fmul qword [0x99a878]
faddp st(1)
fxch st(1)
fmul qword [0x99a870]
faddp st(1)
mov edx, dword [esp + 0x38]
fld dword [edx + 0x74]
fadd qword [esp + 0x60]
fcompp
fnstsw ax
sahf
jbe 0x880552
add edi, dword [esp + 0x70]
inc esi
mov edx, dword [esp + 0x50]
cmp esi, edx
jle 0x88021e
mov dword [esp + 0x58], esi
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
lea eax, [esi - 1]
shl eax, 0x10
mov edx, dword [esp + 0x58]
lea edi, [eax + edx - 1]
mov ecx, dword [esp + 0x6c]
mov eax, dword [ecx + 0x18]
mov dword [eax + ebp*4], edi
mov eax, dword [esp + 0x74]
add eax, dword [esp + 0x70]
mov dword [esp + 0x74], eax
inc ebp
mov eax, dword [esp + 0x50]
cmp ebp, eax
jl 0x880045
mov esi, dword [esp + 0x3c]
mov ebp, eax
mov edi, ecx
fld qword [0x99a8b0]
xor eax, eax
test ebp, ebp
jle 0x8803b0
fld dword [0x99aba4]
fld qword [0x99a8a0]
fld qword [0x99a898]
mov dword [esp + 0x3c], esi
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov esi, eax
mov dword [esp + 0x30], esi
fild dword [esp + 0x30]
fadd dword [0x99aba4]
fmul qword [0x99a8b0]
fmul qword [esp + 0x40]
fdiv qword [esp + 0x48]
fstp qword [esp]
call fcn.0084d1ac
fmul qword [0x99a898]
fadd qword [0x99a8a0]
mov ecx, dword [edi + 0x20]
inc ecx
mov eax, 1
shl eax, cl
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
fmulp st(1)
fadd qword [0x99a8b0]
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fistp dword [esp + 0x28]
fldcw word [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 0x14]
mov dword [eax + esi*4], ecx
inc esi
cmp esi, ebp
jl 0x88032e
mov esi, dword [esp + 0x3c]
fld qword [0x99a8b0]
mov edx, dword [esp + 0x38]
lea eax, [edx + 0x24]
fmul qword [esp + 0x40]
fdiv qword [esp + 0x48]
mov ecx, dword [edx + 0x18]
mov dword [esp + 0xc], ecx
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x10], ecx
mov edx, ebp
call fcn.0087ca38
mov dword [edi + 8], eax
push 0xc
call fcn.00859c55
pop ecx
mov dword [edi + 0xc], eax
xor eax, eax
mov dword [esp + 0x50], ebp
mov ebp, eax
push esi
call fcn.00859c55
pop ecx
mov edx, dword [edi + 0xc]
mov dword [edx + ebp*4], eax
inc ebp
cmp ebp, 3
jl 0x8803ea
mov ebp, dword [esp + 0x50]
xor esi, esi
test ebp, ebp
jle 0x88052f
fld qword [0x99a8b8]
fld qword [0x99a8b0]
fld qword [esp + 0x48]
fadd st(0)
fstp qword [esp + 0x48]
fld qword [0x99a8a0]
fld qword [0x99a898]
fld dword [0x99ab94]
fld dword [0x99ab90]
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov dword [esp + 0x30], esi
fild dword [esp + 0x30]
fadd qword [0x99a8b0]
fmul qword [esp + 0x40]
fdiv qword [esp + 0x48]
fstp qword [esp]
call fcn.0084d1ac
fmul qword [0x99a898]
fadd qword [0x99a8a0]
fmul qword [0x99a8b8]
fld dword [0x99ab94]
fcom st(1)
fnstsw ax
sahf
jbe 0x880484
fst st(1)
fstp st(0)
fld dword [0x99ab90]
fcom st(1)
fnstsw ax
sahf
ja 0x880495
fst st(1)
fstp st(0)
fnstcw word [esp + 0x18]
movzx eax, word [esp + 0x18]
or eax, 0xc00
mov dword [esp + 0x20], eax
fldcw word [esp + 0x20]
fist dword [esp + 0x28]
fldcw word [esp + 0x18]
mov ecx, dword [esp + 0x28]
fild dword [esp + 0x28]
fsubp st(1)
mov eax, dword [edi + 4]
fld qword [0x99a868]
fsub st(1)
fld dword [eax + ecx*4 + 0x84]
fmul st(1)
fld dword [eax + ecx*4 + 0x88]
fmul st(3)
faddp st(1)
mov eax, dword [edi + 0xc]
mov eax, dword [eax]
fstp dword [eax + esi*4]
mov eax, dword [edi + 4]
fld dword [eax + ecx*4 + 0xc8]
fmul st(1)
fld dword [eax + ecx*4 + 0xcc]
fmul st(3)
faddp st(1)
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 4]
fstp dword [eax + esi*4]
mov eax, dword [edi + 4]
fld dword [eax + ecx*4 + 0x10c]
fmulp st(1)
fld dword [eax + ecx*4 + 0x110]
fmulp st(2)
faddp st(1)
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 8]
fstp dword [eax + esi*4]
inc esi
cmp esi, ebp
jl 0x880445
add esp, 0x94
pop ebp
pop esi
pop edi
mov esp, ebx
pop ebx
ret
fstp st(1)
fstp st(0)
jmp 0x87ffc1
fstp st(1)
fstp st(0)
mov edi, dword [esp + 0x5c]
jmp 0x87ffc1
mov dword [esp + 0x58], esi
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x54]
jmp 0x8802c5
mov ebp, edx
jmp 0x8801ee
fstp st(1)
fstp st(0)
mov edi, dword [esp + 0x5c]
jmp 0x87ffc1
fstp st(1)
fstp st(0)
mov edi, dword [esp + 0x5c]
jmp 0x87ffc1
fstp st(1)
fstp st(0)
mov edi, dword [esp + 0x5c]
jmp 0x87ffc1
fstp st(1)
fstp st(0)
mov edi, dword [esp + 0x5c]
jmp 0x87ffc1
fstp st(0)
jmp 0x87ffc1
fstp st(0)
jmp 0x8801ee