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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff84
imul eax, eax, 0xb
mov edx, dword [0x587c38]
lea ebx, [edx + eax*8]
mov eax, dword [ebx + 8]
dec eax
test eax, eax
jl 0x4bf3bd
inc eax
mov dword [esp + 0x60], eax
mov dword [esp], 0
imul eax, dword [esp], 0xd
mov edx, dword [ebx + 4]
lea edi, [edx + eax*8]
mov eax, dword [edi + 4]
shl eax, 2
lea eax, [eax + eax*8]
mov edx, dword [0x587c30]
lea eax, [edx + eax*8]
mov dword [esp + 0x64], eax
mov eax, dword [edi + 0x10]
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x14]
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0x18]
mov dword [edi + 0x28], eax
mov eax, dword [edi + 0x1c]
mov dword [edi + 0x2c], eax
fld qword [edi + 0x30]
mov eax, dword [esp + 0x64]
fadd qword [eax + 0x68]
fstp qword [edi + 0x30]
wait
fld qword [edi + 0x30]
fcomp dword [0x4bf3c8]
fnstsw ax
sahf
jae 0x4bf003
xor eax, eax
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], eax
fld qword [edi + 0x38]
mov eax, dword [esp + 0x64]
fadd qword [eax + 0x88]
fstp qword [edi + 0x38]
wait
fld qword [edi + 0x40]
mov eax, dword [esp + 0x64]
fadd qword [eax + 0xb8]
fstp qword [edi + 0x40]
wait
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x64]
fld qword [eax + 0x98]
fcomp dword [0x4bf3c8]
fnstsw ax
sahf
jne 0x4bf058
cmp dword [ebx + 0x18], 0
jle 0x4bf2b2
push dword [edi + 0x3c]
push dword [edi + 0x38]
push dword [edi + 0x34]
push dword [edi + 0x30]
lea edx, [esp + 0x20]
lea eax, [esp + 0x18]
call fcn.004bcb94
mov eax, dword [esp + 0x64]
fld qword [eax + 0x98]
fcomp dword [0x4bf3c8]
fnstsw ax
sahf
je 0x4bf0cd
mov eax, dword [esp + 0x64]
push dword [eax + 0xa4]
push dword [eax + 0xa0]
mov eax, dword [esp + 0x6c]
push dword [eax + 0x9c]
push dword [eax + 0x98]
lea edx, [esp + 0x30]
lea eax, [esp + 0x28]
call fcn.004bcb94
fld qword [esp + 8]
fadd qword [esp + 0x18]
fstp qword [esp + 8]
wait
fld qword [esp + 0x10]
fadd qword [esp + 0x20]
fstp qword [esp + 0x10]
wait
mov eax, dword [ebx + 0x18]
dec eax
test eax, eax
jl 0x4bf297
inc eax
mov dword [esp + 0x68], eax
xor esi, esi
mov ebp, esi
add ebp, ebp
lea ebp, [ebp + ebp*2]
mov eax, dword [ebx + 0x14]
cmp byte [eax + ebp*8], 0
je 0x4bf28c
mov eax, dword [ebx + 0x14]
fld qword [eax + ebp*8 + 8]
fsub qword [edi + 0x10]
fstp qword [esp + 0x28]
wait
mov eax, dword [ebx + 0x14]
fld qword [eax + ebp*8 + 0x10]
fsub qword [edi + 0x18]
fstp qword [esp + 0x30]
wait
fld qword [esp + 0x28]
fmul st(0)
fstp xword [esp + 0x6c]
wait
fld qword [esp + 0x30]
fmul st(0)
fld xword [esp + 0x6c]
faddp st(1)
fsqrt
fstp qword [esp + 0x38]
wait
fld qword [esp + 0x38]
mov eax, dword [ebx + 0x14]
fcomp qword [eax + ebp*8 + 0x20]
fnstsw ax
sahf
ja 0x4bf28c
fld qword [esp + 0x38]
fcomp dword [0x4bf3c8]
fnstsw ax
sahf
je 0x4bf28c
mov eax, dword [ebx + 0x14]
fld qword [eax + ebp*8 + 0x18]
fcomp dword [0x4bf3c8]
fnstsw ax
sahf
je 0x4bf28c
mov eax, dword [ebx + 0x14]
fld qword [eax + ebp*8 + 0x20]
fcomp dword [0x4bf3c8]
fnstsw ax
sahf
je 0x4bf28c
mov eax, dword [ebx + 0x14]
fld qword [eax + ebp*8 + 0x18]
fmul qword [esp + 0x28]
fdiv qword [esp + 0x38]
fstp qword [esp + 0x18]
wait
mov eax, dword [ebx + 0x14]
fld qword [eax + ebp*8 + 0x18]
fmul qword [esp + 0x30]
fdiv qword [esp + 0x38]
fstp qword [esp + 0x20]
wait
mov eax, dword [ebx + 0x14]
cmp dword [eax + ebp*8 + 0x28], 1
jne 0x4bf1fa
mov eax, dword [ebx + 0x14]
fld qword [eax + ebp*8 + 0x20]
fsub qword [esp + 0x38]
fmul qword [esp + 0x18]
mov eax, esi
add eax, eax
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x14]
fdiv qword [edx + eax*8 + 0x20]
fstp qword [esp + 0x18]
wait
mov eax, dword [ebx + 0x14]
fld qword [eax + ebp*8 + 0x20]
fsub qword [esp + 0x38]
fmul qword [esp + 0x20]
mov eax, esi
add eax, eax
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x14]
fdiv qword [edx + eax*8 + 0x20]
fstp qword [esp + 0x20]
wait
mov eax, dword [ebx + 0x14]
cmp dword [eax + ebp*8 + 0x28], 2
jne 0x4bf24c
mov eax, dword [ebx + 0x14]
fld qword [eax + ebp*8 + 0x20]
fsub qword [esp + 0x38]
mov eax, esi
add eax, eax
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x14]
fdiv qword [edx + eax*8 + 0x20]
fmul st(0)
fmul qword [esp + 0x18]
fstp qword [esp + 0x18]
wait
mov eax, dword [ebx + 0x14]
fld qword [eax + ebp*8 + 0x20]
fsub qword [esp + 0x38]
mov eax, esi
add eax, eax
lea eax, [eax + eax*2]
mov edx, dword [ebx + 0x14]
fdiv qword [edx + eax*8 + 0x20]
fmul st(0)
fmul qword [esp + 0x20]
fstp qword [esp + 0x20]
wait
mov eax, dword [ebx + 0x14]
cmp byte [eax + ebp*8 + 0x2c], 0
je 0x4bf272
fld qword [esp + 8]
fadd qword [esp + 0x18]
fstp qword [esp + 8]
wait
fld qword [esp + 0x10]
fadd qword [esp + 0x20]
fstp qword [esp + 0x10]
wait
jmp 0x4bf28c
fld qword [esp + 0x40]
fadd qword [esp + 0x18]
fstp qword [esp + 0x40]
wait
fld qword [esp + 0x48]
fadd qword [esp + 0x20]
fstp qword [esp + 0x48]
wait
inc esi
dec dword [esp + 0x68]
jne 0x4bf0e0
push dword [esp + 0xc]
push dword [esp + 0xc]
push dword [esp + 0x1c]
push dword [esp + 0x1c]
lea edx, [edi + 0x30]
lea eax, [edi + 0x38]
call fcn.004bca8c
mov esi, dword [edi + 8]
mov eax, esi
mov ecx, dword [edi + 0x64]
lea edx, [ecx + ecx*2]
add eax, edx
mov ebp, 0x18
cdq
idiv ebp
mov dword [esp + 0x78], edx
fild dword [esp + 0x78]
fdiv dword [0x4bf3cc]
fstp qword [esp + 0x50]
wait
fld qword [esp + 0x50]
fcomp dword [0x4bf3d0]
fnstsw ax
sahf
jbe 0x4bf2f8
fld dword [0x4bf3d4]
fsub qword [esp + 0x50]
fstp qword [esp + 0x50]
wait
fld qword [esp + 0x50]
fsub dword [0x4bf3d8]
fstp qword [esp + 0x50]
wait
mov eax, esi
mov edx, ecx
shl edx, 2
add eax, edx
mov ecx, 0x14
cdq
idiv ecx
mov dword [esp + 0x78], edx
fild dword [esp + 0x78]
fdiv dword [0x4bf3dc]
fstp qword [esp + 0x58]
wait
fld qword [esp + 0x58]
fcomp dword [0x4bf3d0]
fnstsw ax
sahf
jbe 0x4bf349
fld dword [0x4bf3d4]
fsub qword [esp + 0x58]
fstp qword [esp + 0x58]
wait
fld qword [esp + 0x58]
fsub dword [0x4bf3d8]
fstp qword [esp + 0x58]
wait
fld qword [esp + 0x50]
mov eax, dword [esp + 0x64]
fmul qword [eax + 0x90]
fadd qword [edi + 0x38]
add esp, 0xfffffff8
fstp qword [esp]
wait
fld qword [esp + 0x60]
mov eax, dword [esp + 0x6c]
fmul qword [eax + 0x70]
fadd qword [edi + 0x30]
add esp, 0xfffffff8
fstp qword [esp]
wait
lea edx, [esp + 0x20]
lea eax, [esp + 0x18]
call fcn.004bcb94
fld qword [edi + 0x10]
fadd qword [esp + 8]
fadd qword [esp + 0x40]
fstp qword [edi + 0x10]
wait
fld qword [edi + 0x18]
fadd qword [esp + 0x10]
fadd qword [esp + 0x48]
fstp qword [edi + 0x18]
wait
inc dword [esp]
dec dword [esp + 0x60]
jne 0x4befa7
add esp, 0x7c
pop ebp
pop edi
pop esi
pop ebx
ret