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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x198
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor edi, edi
lea eax, [esi + 0x3590]
lea ebx, [esi + 0x3abc]
mov dword [esp + 0x44], edi
mov dword [esp + 0x34], eax
mov dword [esp + 0x4c], ebx
lea esp, [esp]
mov ecx, dword [esi + 0x6e8]
lea edx, [esp + 0x168]
push edx
push edi
call fcn.0054fa90
test eax, eax
je 0x4eb404
cmp edi, 0xa
jl 0x4ea9f5
cmp edi, 0xc
jge 0x4ea9f5
mov al, byte [esi + 0x3b74]
test al, al
je 0x4ea9f5
mov eax, dword [esi + 0xd0c]
test eax, eax
je 0x4ea9e4
mov al, byte [esi + 0xd4c]
test al, al
jne 0x4ea9f5
mov ecx, dword [esi + 0x6e8]
push edi
call fcn.0054fae0
jmp 0x4eb404
mov ecx, esi
call fcn.004ea010
fld dword [esp + 0x198]
fld dword [esp + 0x19c]
mov ebp, eax
fld dword [esp + 0x1a0]
mov dword [ebp], edi
fstp dword [esp + 0xf4]
fld dword [esi + 0x34b8]
lea edi, [ebp + 0x14]
fmul dword [ebx + 4]
fld dword [esi + 0x34b4]
fmul dword [ebx]
mov eax, edi
faddp st(1)
fld dword [ebx - 4]
fmul dword [esi + 0x34b0]
faddp st(1)
fstp dword [edi]
fld dword [esi + 0x34c4]
fmul dword [ebx + 4]
fld dword [esi + 0x34c0]
fmul dword [ebx]
faddp st(1)
fld dword [esi + 0x34bc]
fmul dword [ebx - 4]
faddp st(1)
fstp dword [edi + 4]
fld dword [esi + 0x34d0]
fmul dword [ebx + 4]
fld dword [esi + 0x34cc]
fmul dword [ebx]
faddp st(1)
fld dword [esi + 0x34c8]
fmul dword [ebx - 4]
faddp st(1)
fstp dword [edi + 8]
fld dword [esi + 0x34d4]
fadd dword [edi]
fstp dword [edi]
fld dword [esi + 0x34d8]
fadd dword [edi + 4]
fstp dword [edi + 4]
fld dword [esi + 0x34dc]
fadd dword [edi + 8]
fstp dword [edi + 8]
fld st(1)
fsub dword [edi]
fstp dword [esp + 0x54]
fld st(0)
fsub dword [edi + 4]
fstp dword [esp + 0x58]
fld dword [esp + 0xf4]
fsub dword [edi + 8]
fstp dword [esp + 0x5c]
fxch st(1)
fadd dword [edi]
fstp dword [esp + 0x12c]
fadd dword [edi + 4]
fld dword [esp + 0xf4]
fadd dword [edi + 8]
fld dword [esp + 0x12c]
fmul dword [0x59e450]
fstp dword [esp + 0x78]
fxch st(1)
fmul dword [0x59e450]
fstp dword [esp + 0x7c]
fmul dword [0x59e450]
fstp dword [esp + 0x80]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov dword [eax], ecx
mov ecx, dword [esp + 0x80]
mov dword [eax + 4], edx
mov dword [eax + 8], ecx
fld dword [esp + 0x194]
fld dword [esp + 0x190]
lea ebx, [ebp + 0x2c]
fld dword [esp + 0x18c]
xor ecx, ecx
fstp dword [ebx]
mov dword [esp + 0x50], 0x3e800000
fstp dword [ebx + 4]
mov dword [esp + 0x14], ecx
fstp dword [ebx + 8]
fld dword [esp + 0x5c]
fmul dword [ebx + 8]
fld dword [esp + 0x58]
fmul dword [ebx + 4]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [ebx]
faddp st(1)
fstp dword [ebp + 8]
mov eax, dword [0x5c329c]
test eax, eax
mov dword [esp + 0x48], eax
jle 0x4eab98
mov edx, dword [ecx*4 + 0x7c54f0]
mov eax, dword [esp + 0x170]
cmp eax, dword [edx + 0x6f4]
je 0x4eabc1
mov eax, dword [0x5c329c]
inc ecx
cmp ecx, eax
jl 0x4eab74
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x170]
push edx
mov ecx, 0x5ea560
call fcn.00410b80
test eax, eax
je 0x4eaf22
mov dword [ebp + 0xc], 2
mov dword [ebp + 0x10], eax
jmp 0x4eaf52
mov eax, dword [esp + 0x44]
test eax, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x48], ecx
jl 0x4eadd7
cmp eax, 4
jge 0x4eadd7
mov edx, dword [esp + 0x34]
fld dword [esi + 0x34b8]
fmul dword [edx + 4]
mov ecx, dword [ecx*4 + 0x7c54f0]
fld dword [esi + 0x34b4]
add ecx, 0xc
fmul dword [edx]
lea eax, [ecx + 0x3590]
mov dword [esp + 0x18], eax
faddp st(1)
fld dword [esi + 0x34b0]
mov dword [esp + 0x2c], 4
fmul dword [edx - 4]
faddp st(1)
fld dword [esi + 0x34c4]
fmul dword [edx + 4]
fld dword [esi + 0x34c0]
fmul dword [edx]
faddp st(1)
fld dword [esi + 0x34bc]
fmul dword [edx - 4]
faddp st(1)
fld dword [esi + 0x34d0]
fmul dword [edx + 4]
fld dword [esi + 0x34cc]
fmul dword [edx]
faddp st(1)
fld dword [esi + 0x34c8]
fmul dword [edx - 4]
faddp st(1)
fstp dword [esp + 0x74]
fxch st(1)
fadd dword [esi + 0x34d4]
fstp dword [esp + 0x6c]
fadd dword [esi + 0x34d8]
fld dword [esp + 0x74]
fadd dword [esi + 0x34dc]
fstp dword [esp + 0x74]
lea esp, [esp]
mov eax, dword [esp + 0x18]
fld dword [ecx + 0x34b4]
fmul dword [eax]
fld dword [ecx + 0x34b0]
fmul dword [eax - 4]
faddp st(1)
fld dword [ecx + 0x34b8]
fmul dword [eax + 4]
faddp st(1)
fld dword [ecx + 0x34c0]
fmul dword [eax]
fld dword [ecx + 0x34bc]
fmul dword [eax - 4]
faddp st(1)
fld dword [ecx + 0x34c4]
fmul dword [eax + 4]
faddp st(1)
fld dword [ecx + 0x34d0]
fmul dword [eax + 4]
fld dword [ecx + 0x34cc]
fmul dword [eax]
faddp st(1)
fld dword [ecx + 0x34c8]
fmul dword [eax - 4]
faddp st(1)
fstp dword [esp + 0x68]
fxch st(1)
fadd dword [ecx + 0x34d4]
fstp dword [esp + 0x60]
fadd dword [ecx + 0x34d8]
fstp dword [esp + 0x64]
fld dword [esp + 0x68]
fadd dword [ecx + 0x34dc]
fld dword [esp + 0x6c]
fsub dword [esp + 0x60]
fld st(2)
fsub dword [esp + 0x64]
fld dword [esp + 0x74]
fsub st(3)
fld dword [eax + 0x80]
fadd dword [edx + 0x80]
fld st(1)
fmul st(2)
fld st(3)
fmul st(4)
faddp st(1)
fld st(4)
fmul st(5)
faddp st(1)
fld st(1)
fmul st(2)
fcompp
fstp st(0)
fstp st(0)
fnstsw ax
fstp st(0)
test ah, 0x41
fstp st(0)
jne 0x4eadbd
fld dword [esp + 0x60]
mov edx, edi
fadd dword [esp + 0x6c]
mov dword [esp + 0x50], 0x3eb33333
fld dword [esp + 0x64]
fadd st(3)
fxch st(2)
fadd dword [esp + 0x74]
fstp dword [esp + 0x110]
fmul dword [0x59e450]
fstp dword [esp + 0x84]
mov eax, dword [esp + 0x84]
mov dword [edx], eax
fmul dword [0x59e450]
fstp dword [esp + 0x88]
mov eax, dword [esp + 0x88]
fld dword [esp + 0x110]
mov dword [edx + 4], eax
fmul dword [0x59e450]
fstp dword [esp + 0x8c]
mov eax, dword [esp + 0x8c]
mov dword [edx + 8], eax
mov edx, dword [esp + 0x34]
jmp 0x4eadbf
fstp st(0)
add dword [esp + 0x18], 0xf8
dec dword [esp + 0x2c]
jne 0x4eac80
mov ecx, dword [esp + 0x14]
fstp st(0)
cmp ecx, dword [0x5c329c]
jge 0x4eab98
mov eax, dword [ecx*4 + 0x7c54f0]
fld dword [esi + 0x34d4]
fsub dword [eax + 0x34e0]
add eax, 0x34e0
fstp dword [esp + 0x38]
fld dword [esi + 0x34d8]
fsub dword [eax + 4]
fstp dword [esp + 0x3c]
fld dword [esi + 0x34dc]
fsub dword [eax + 8]
fst dword [esp + 0x40]
fmul dword [esp + 0x40]
fld dword [esp + 0x3c]
fmul dword [esp + 0x3c]
faddp st(1)
fld dword [esp + 0x38]
fmul dword [esp + 0x38]
faddp st(1)
fsqrt
fcom dword [0x59e440]
fnstsw ax
test ah, 0x41
jne 0x4eaee7
fdivr dword [0x59e940]
fld dword [esp + 0x38]
fmul st(1)
fld st(1)
fmul dword [esp + 0x3c]
fstp dword [esp + 0xc0]
fxch st(1)
fmul dword [esp + 0x40]
fstp dword [esp + 0xc4]
fadd dword [ebx]
fstp dword [ebx]
fld dword [esp + 0xc0]
fadd dword [ebx + 4]
fstp dword [ebx + 4]
fld dword [esp + 0xc4]
fadd dword [ebx + 8]
fstp dword [ebx + 8]
fld dword [ebx + 8]
fld dword [ebx + 4]
fld dword [ebx]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld st(3)
fmul st(4)
faddp st(1)
fsqrt
fstp st(3)
fstp st(0)
fstp st(0)
fcom dword [0x59e440]
fnstsw ax
test ah, 0x41
jne 0x4eaed1
fdivr dword [0x59e43c]
fld st(0)
fmul dword [ebx]
fstp dword [ebx]
fld st(0)
fmul dword [ebx + 4]
fstp dword [ebx + 4]
fmul dword [ebx + 8]
fstp dword [ebx + 8]
jmp 0x4eaee9
mov eax, dword [esp + 0x38]
mov edx, ebx
mov dword [edx], eax
mov eax, dword [esp + 0x3c]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x40]
mov dword [edx + 8], eax
fstp st(0)
fld dword [esp + 0x5c]
fmul dword [ebx + 8]
fld dword [esp + 0x58]
fmul dword [ebx + 4]
faddp st(1)
fld dword [esp + 0x54]
fmul dword [ebx]
mov dword [ebp + 0xc], 6
faddp st(1)
fstp dword [ebp + 8]
mov ecx, dword [ecx*4 + 0x7c54f0]
mov eax, dword [ecx + 0x10]
lea edx, [eax + eax*8]
mov eax, dword [0x5ea570]
lea ecx, [eax + edx*4]
jmp 0x4eaf4f
mov dword [ebp + 0xc], 9
mov ecx, dword [esp + 0x178]
test ecx, ecx
mov dword [esp + 0x2c], 0
je 0x4eaf4b
push 0x1000
lea eax, [esp + 0x30]
push eax
call fcn.00547390
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0x10], ecx
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x30]
push ecx
push ebx
push edi
mov ecx, esi
call fcn.004ed420
mov eax, dword [ebp + 0xc]
cmp eax, 6
jne 0x4eafe3
lea edx, [esp + 0xb0]
push edx
mov edx, dword [ebp + 0x10]
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0xa8]
push ecx
mov ecx, dword [edx + 0x20]
push ebx
push edi
call fcn.004ed420
fld dword [esp + 0x28]
fsub dword [esp + 0xa0]
fstp dword [esp + 0x28]
fld dword [esp + 0x90]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [esp + 0x1c]
fsub dword [esp + 0xb0]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fsub dword [esp + 0xb4]
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fsub dword [esp + 0xb8]
jmp 0x4eb0a6
cmp eax, 2
jne 0x4eb0aa
fld dword [edi]
lea eax, [esp + 0x138]
fstp qword [esp + 0x114]
push eax
fld dword [ebp + 0x18]
lea ecx, [esp + 0xfc]
fstp qword [esp + 0x120]
push ecx
fld dword [ebp + 0x1c]
lea edx, [esp + 0x108]
fstp qword [esp + 0x12c]
push edx
fld dword [ebx]
mov edx, dword [ebp + 0x10]
fstp qword [esp + 0x15c]
lea eax, [esp + 0x15c]
fld dword [ebp + 0x30]
push eax
fstp qword [esp + 0x168]
lea ecx, [esp + 0x124]
fld dword [ebp + 0x34]
push ecx
fstp qword [esp + 0x174]
mov ecx, dword [edx + 0x20]
add ecx, 0xd4
call fcn.005694e0
fld qword [esp + 0x100]
fsubr dword [esp + 0x28]
fstp dword [esp + 0x28]
fld qword [esp + 0xf8]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fld dword [esp + 0x24]
fsub qword [esp + 0x148]
fld dword [esp + 0x1c]
fsub qword [esp + 0x138]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fsub qword [esp + 0x140]
fstp dword [esp + 0x20]
fstp dword [esp + 0x24]
fld dword [esp + 0x28]
fcomp dword [0x59e440]
fnstsw ax
test ah, 1
jne 0x4eb0cb
fld dword [0x59e440]
mov dword [esp + 0x28], 0
jmp 0x4eb0d5
fld dword [0x59e670]
fdiv dword [esp + 0x28]
fld dword [esp + 0x28]
fdiv dword [esp + 0x30]
fchs
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul dword [esp + 0x1c]
fld dword [esp + 0x20]
fmul dword [esp + 0x20]
faddp st(1)
fld dword [esp + 0x24]
fmul dword [esp + 0x24]
faddp st(1)
fsqrt
fstp dword [esp + 0x14]
fld dword [0x59e4dc]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 5
jp 0x4eb11e
fld dword [0x59e4dc]
jmp 0x4eb122
fld dword [esp + 0x14]
fmul st(1)
fcomp dword [0x59e43c]
fnstsw ax
test ah, 0x41
jne 0x4eb13b
fstp st(0)
fld dword [0x59e43c]
jmp 0x4eb15a
fld dword [0x59e4dc]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 5
jp 0x4eb154
fld dword [0x59e4dc]
jmp 0x4eb158
fld dword [esp + 0x14]
fmulp st(1)
fld dword [esp + 0x14]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x4eb189
fdiv dword [esp + 0x14]
fld dword [esp + 0x1c]
fmul st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
fmul dword [esp + 0x24]
fstp dword [esp + 0x24]
jmp 0x4eb18b
fstp st(0)
mov eax, dword [ebp + 0xc]
cmp eax, 6
je 0x4eb1b2
cmp eax, 9
jne 0x4eb2cd
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x4eb2cd
mov cl, byte [eax + 0x2c]
test cl, cl
je 0x4eb2cd
fld dword [esp + 0x14]
fmul dword [0x59e774]
fld dword [esp + 0x18]
fmul dword [0x59e77c]
faddp st(1)
fsub dword [0x59e84c]
fcom dword [0x59e440]
fnstsw ax
test ah, 0x41
jne 0x4eb2cb
fcom dword [0x59e43c]
fnstsw ax
test ah, 0x41
jne 0x4eb1f4
fstp st(0)
fld dword [0x59e43c]
fld dword [esi + 0xa4]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x4eb2cb
fld dword [edi]
lea eax, [esi + 0xac]
fsub dword [esi + 0x34d4]
fld dword [edi + 4]
fsub dword [esi + 0x34d8]
fld dword [edi + 8]
fsub dword [esi + 0x34dc]
fld st(0)
fmul dword [esi + 0x34c8]
fld st(2)
fmul dword [esi + 0x34bc]
faddp st(1)
fld st(3)
fmul dword [esi + 0x34b0]
faddp st(1)
fstp dword [esp + 0x94]
mov ecx, dword [esp + 0x94]
fld st(0)
fmul dword [esi + 0x34cc]
fld st(2)
fmul dword [esi + 0x34c0]
faddp st(1)
fld st(3)
fmul dword [esi + 0x34b4]
faddp st(1)
fstp dword [esp + 0x98]
mov edx, dword [esp + 0x98]
fmul dword [esi + 0x34d0]
fxch st(1)
fmul dword [esi + 0x34c4]
faddp st(1)
fxch st(1)
fmul dword [esi + 0x34b8]
mov dword [eax], ecx
mov dword [eax + 4], edx
faddp st(1)
fstp dword [esp + 0x9c]
mov ecx, dword [esp + 0x9c]
mov dword [eax + 8], ecx
fstp dword [esi + 0xa4]
fld dword [esp + 0x14]
fmul dword [0x5ac988]
fadd dword [0x5ad1dc]
fstp dword [esi + 0xa8]
jmp 0x4eb2cd
fstp st(0)
fld dword [esp + 0x18]
fmul dword [esp + 0x50]
fld dword [esp + 0x1c]
fmul st(1)
fld st(1)
fmul dword [esp + 0x20]
fstp dword [esp + 0xe4]
fxch st(1)
fmul dword [esp + 0x24]
fstp dword [esp + 0xe8]
fld dword [esp + 0x18]
fmul dword [ebx]
fld dword [esp + 0x18]
fmul dword [ebx + 4]
fstp dword [esp + 0xcc]
fld dword [esp + 0x18]
fmul dword [ebx + 8]
fstp dword [esp + 0xd0]
fsubrp st(1)
fld dword [esp + 0xcc]
fsub dword [esp + 0xe4]
fstp dword [esp + 0xd8]
fld dword [esp + 0xd0]
fsub dword [esp + 0xe8]
fld st(0)
fmul st(1)
fld dword [esp + 0xd8]
fmul dword [esp + 0xd8]
faddp st(1)
fld st(2)
fmul st(3)
faddp st(1)
fsqrt
fst dword [ebp + 4]
fcom dword [0x59e440]
fnstsw ax
test ah, 0x41
jne 0x4eb3b4
fdivr dword [0x59e43c]
lea edx, [ebp + 0x20]
fld st(0)
fmul st(3)
fstp dword [esp + 0xa4]
mov eax, dword [esp + 0xa4]
fld dword [esp + 0xd8]
mov dword [edx], eax
fmul st(1)
fstp dword [esp + 0xa8]
mov ecx, dword [esp + 0xa8]
mov dword [edx + 4], ecx
fmul st(1)
fstp dword [esp + 0xac]
mov eax, dword [esp + 0xac]
mov dword [edx + 8], eax
jmp 0x4eb3c1
xor eax, eax
fstp st(0)
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], eax
mov eax, dword [esp + 0x48]
fstp st(0)
mov ecx, dword [0x5c329c]
fstp st(0)
cmp eax, ecx
jge 0x4eb3ec
mov ecx, dword [ebp + 4]
mov edx, dword [eax*4 + 0x7c54f0]
mov eax, dword [esi]
push ecx
push edx
push eax
mov ecx, 0x5eb978
call fcn.0041ad80
mov ecx, dword [esp + 0x44]
push ecx
mov ecx, dword [esi + 0x6e8]
call fcn.0054fae0
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x34]
inc edi
add ebx, 0xc
add ecx, 0xf8
cmp edi, 0xd
mov dword [esp + 0x44], edi
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x34], ecx
jl 0x4ea9a0
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret