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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x632ae7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
push ebx
push esi
mov esi, ecx
cmp byte [esi + 0x1c], 0
push edi
je 0x46ec44
fld dword [ebp + 8]
fadd dword [esi + 0x20]
fstp dword [esi + 0x20]
fld dword [esi + 0x74]
fcomp dword [0x641de0]
fnstsw ax
test ah, 0x41
jne 0x46e816
fld dword [esi + 0x74]
fsub dword [ebp + 8]
fstp dword [esi + 0x74]
fld dword [esi + 0x74]
fcomp dword [0x641de0]
fnstsw ax
test ah, 5
jp 0x46e82b
fldz
fstp dword [esi + 0x74]
mov ecx, esi
call fcn.0046e080
test al, al
je 0x46e846
push 0x64dae4
call fcn.00401000
pop ecx
jmp 0x46ec44
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push 0x961928
call dword [eax + 8]
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push 0x6a8694
call dword [eax + 0x10]
fld dword [ebp + 8]
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
push ecx
fstp dword [esp]
call dword [eax + 0x20]
push dword [esi + 0x10]
mov ecx, esi
call fcn.0046e727
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x68]
push 0x2a
pop edi
push edi
lea ecx, [esp + 0x54]
mov ebx, eax
call fcn.0046e3c4
mov eax, dword [esp + 0x58]
and dword [esp + 0x7c], 0
and eax, 0x7fffffff
cmp eax, edi
jge 0x46e8ba
add eax, eax
cmp eax, edi
jg 0x46e8aa
mov eax, edi
push 0x20
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0054d250
add esp, 0xc
mov ecx, dword [esi + 0x10]
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x58], edi
call fcn.004e7640
push ebx
call fcn.005c53b0
pop ecx
xor edi, edi
mov ebx, eax
mov eax, dword [esp + 0x50]
add eax, edi
lea ecx, [eax + 0x10]
push ecx
push eax
push ebx
call fcn.0046db5f
add edi, 0x20
add esp, 0xc
add ebx, 0x40
cmp edi, 0x540
jl 0x46e8d6
or dword [esp + 0x7c], 0xffffffff
lea ecx, [esp + 0x50]
call fcn.0046e442
fldz
and dword [esp + 0x14], 0
fstp dword [esp + 0x28]
fldz
lea edi, [esi + 0x54]
fstp dword [esp + 0x2c]
mov ecx, edi
fldz
fstp dword [esp + 0x30]
fldz
fstp dword [esp + 0x34]
fldz
fstp dword [esp + 0x38]
fldz
fstp dword [esp + 0x3c]
call fcn.0044fbd0
test eax, eax
jle 0x46e9b3
mov ebx, dword [esi + 0x58]
mov eax, dword [ebx]
mov eax, dword [eax + 0x3c]
fld dword [eax + 0x40]
mov ecx, dword [eax + 0x48]
fld dword [eax + 0x44]
mov dword [esp + 0x48], ecx
fld st(1)
inc dword [esp + 0x14]
fadd dword [esp + 0x28]
mov ecx, edi
add ebx, 4
fstp dword [esp + 0x28]
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fstp st(0)
fld dword [esp + 0x48]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [eax + 0x50]
fld dword [eax + 0x54]
mov eax, dword [eax + 0x58]
fld st(1)
mov dword [esp + 0x58], eax
fadd dword [esp + 0x34]
fstp dword [esp + 0x34]
fadd dword [esp + 0x38]
fstp dword [esp + 0x38]
fstp st(0)
fld dword [esp + 0x58]
fadd dword [esp + 0x3c]
fstp dword [esp + 0x3c]
call fcn.0044fbd0
cmp dword [esp + 0x14], eax
jl 0x46e940
mov ecx, edi
call fcn.0044fbd0
test eax, eax
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jge 0x46e9cc
fadd dword [0x6419c0]
push ecx
lea ecx, [esp + 0x2c]
fstp dword [esp]
call fcn.004597ee
mov ecx, edi
call fcn.0044fbd0
test eax, eax
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jge 0x46e9f2
fadd dword [0x6419c0]
push ecx
lea ecx, [esp + 0x38]
fstp dword [esp]
call fcn.004597ee
lea ecx, [esp + 0x28]
call fcn.00406436
fstp dword [esp + 0x14]
lea ecx, [esp + 0x34]
call fcn.00406436
fstp dword [esp + 0x18]
fld1
mov ecx, edi
fstp dword [esp + 0x10]
xor ebx, ebx
call fcn.0044fbd0
test eax, eax
jle 0x46eafa
fld1
fdiv dword [esp + 0x14]
fstp dword [esp + 0x14]
fld1
fdiv dword [esp + 0x18]
fstp dword [esp + 0x1c]
mov eax, dword [esi + 0x58]
mov edi, ebx
shl edi, 2
add eax, edi
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
fld dword [eax + 0x48]
add eax, 0x40
fld dword [eax + 4]
push ecx
fld dword [eax]
push ecx
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fstp qword [esp]
call fcn.006011e4
mov eax, dword [esi + 0x58]
add eax, edi
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
add eax, 0x50
fstp dword [esp + 0x20]
fld dword [eax + 8]
fld dword [eax + 4]
fld dword [eax]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fstp qword [esp]
call fcn.006011e4
fld dword [esp + 0x1c]
pop ecx
fmul dword [esp + 0x1c]
pop ecx
fcom dword [esp + 0x10]
fnstsw ax
test ah, 5
jp 0x46ead0
fstp dword [esp + 0x10]
jmp 0x46ead2
fstp st(0)
fmul dword [esp + 0x1c]
fcom dword [esp + 0x10]
fnstsw ax
test ah, 5
jp 0x46eae7
fstp dword [esp + 0x10]
jmp 0x46eae9
fstp st(0)
lea ecx, [esi + 0x54]
inc ebx
call fcn.0044fbd0
cmp ebx, eax
jl 0x46ea44
mov eax, dword [esi + 0x78]
and dword [esp + 0x14], 0
lea ecx, [esi + 0x54]
mov dword [esp + 0x1c], eax
call fcn.0044fbd0
test eax, eax
jle 0x46ec44
fld dword [esp + 0x1c]
fld dword [esp + 0x28]
fmul st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x30]
fmul st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x34]
fmul st(1)
fstp dword [esp + 0x20]
fld1
fsub st(1)
fstp dword [esp + 0x10]
fld dword [esp + 0x3c]
fmul st(1)
fstp dword [esp + 0x24]
fstp st(0)
mov edi, dword [esp + 0x14]
mov eax, dword [esi + 0x58]
shl edi, 2
lea ecx, [edi + eax]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
fld dword [eax + 0x44]
add eax, 0x40
mov edx, dword [eax]
fld dword [eax + 8]
fld dword [esp + 0x10]
mov eax, dword [ecx]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x28], edx
fmul dword [esp + 0x28]
add eax, 0x50
mov edx, dword [eax]
fadd dword [esp + 0x1c]
mov dword [esp + 0x34], edx
fld dword [esp + 0x10]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
fmul st(2)
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], edx
fadd dword [esp + 0x18]
fstp dword [esp + 0x30]
mov eax, dword [esp + 0x30]
fld dword [esp + 0x10]
mov dword [esp + 0x58], eax
fmul dword [esp + 0x34]
fadd dword [esp + 0x20]
fstp dword [esp + 0x34]
fld dword [esp + 0x10]
fmul dword [esp + 0x3c]
fadd dword [esp + 0x24]
fstp dword [esp + 0x3c]
fst dword [esp + 0x50]
fstp st(0)
fstp st(0)
fstp dword [esp + 0x54]
fldz
fstp dword [esp + 0x5c]
mov ebx, dword [ecx]
mov ecx, ebx
call fcn.0043200f
mov ebx, dword [ebx + 0x3c]
mov eax, dword [ebx]
lea ecx, [esp + 0x50]
push ecx
mov ecx, ebx
call dword [eax + 0x50]
fldz
mov eax, dword [esp + 0x34]
fstp dword [esp + 0x4c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x48], eax
mov eax, dword [esi + 0x58]
add eax, edi
mov edi, dword [eax]
mov ecx, edi
call fcn.0043200f
mov ecx, dword [edi + 0x3c]
mov eax, dword [ecx]
lea edx, [esp + 0x40]
push edx
call dword [eax + 0x54]
inc dword [esp + 0x14]
lea ecx, [esi + 0x54]
call fcn.0044fbd0
cmp dword [esp + 0x14], eax
jl 0x46eb4c
mov ecx, dword [esp + 0x74]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4