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

Disassembly:
push ebx
push esi
mov ebx, ecx
push edi
push ebp
sub esp, 0x110
mov edx, dword [ebx + 0x16c]
test edx, edx
je 0x4e4641
mov eax, dword [ebx + 0x4e8]
mov esi, dword [0x885b48]
cmp esi, eax
jbe 0x4e4641
mov al, byte [ebx + 0x158]
and al, 1
jne 0x4e4534
fld dword [0x5f8d40]
mov byte [esp + 0xc], 0
xor ebp, ebp
fstp dword [esp + 0x28]
mov al, byte [ebx + 0x158]
and al, 0xef
mov byte [ebx + 0x158], al
mov al, byte [ebx + 0x158]
and al, 0xf7
mov byte [ebx + 0x158], al
mov edi, dword [0x885b48]
mov eax, dword [ebx + 0x4c4]
cmp edi, eax
jbe 0x4e4402
mov dword [esp + 8], ebx
add dword [esp + 8], 4
add dword [esp + 8], 0x30
mov eax, dword [esp + 8]
lea esi, [eax]
lea edi, [esp + 0xec]
movsd dword es:[edi], dword [esi]
push 0
push 0
push 0
push 1
push 0
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x8a]
push 6
push eax
lea eax, [esp + 0x10c]
push 1
push dword [0x5f8cac]
push eax
call fcn.004b2200
xor edx, edx
add esp, 0x2c
cmp word [esp + 0x72], 0
fldz
fldz
fldz
jle 0x4e406e
movsx eax, dx
mov edi, dword [esp + eax*4 + 0x50]
lea ecx, [edi + 0x78]
fld dword [ecx + 4]
fstp st(3)
fld st(2)
fmul st(0)
fld dword [ecx]
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fld dword [ecx + 8]
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fstp st(3)
fld st(2)
fsqrt
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp st(3)
fld st(2)
fcomp dword [0x5f8db8]
fnstsw ax
test ah, 4
jne 0x4e4062
and ah, 0x45
test ah, 0x41
je 0x4e4062
mov al, byte [edi + 0x1f6]
shr al, 1
and al, 1
jne 0x4e4062
mov al, byte [edi + 0x1f6]
and al, 1
jne 0x4e4062
mov al, byte [edi + 0x1f6]
shr al, 2
and al, 1
jne 0x4e4062
cmp byte [edi + 0x1f9], 3
jae 0x4e4062
mov esi, dword [esp + 8]
lea eax, [edi + 0x34]
fld dword [esi + 8]
fsub dword [eax + 8]
fstp st(1)
fld dword [esi + 4]
fsub dword [eax + 4]
fstp st(2)
fld dword [esi]
fsub dword [eax]
fstp st(3)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fld st(1)
fmul st(0)
faddp st(1)
fstp st(3)
fld st(2)
fcomp dword [esp + 0x28]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4e4062
fld st(2)
fstp dword [esp + 0x28]
mov ebp, edi
inc edx
cmp dx, word [esp + 0x72]
jl 0x4e3fa0
test ebp, ebp
je 0x4e43f0
fcompp
mov ecx, ebp
lea eax, [esp + 0x74]
mov esi, dword [ecx]
push eax
push 1
fstp st(0)
call dword [esi + 0x4c]
mov ecx, ebp
lea eax, [esp + 0x80]
mov edi, dword [ecx]
push eax
push 4
call dword [edi + 0x4c]
mov al, byte [ebp + 0x1f9]
cmp al, 1
jne 0x4e40e0
mov dword [esp + 0x9c], 0x3f000000
mov dword [esp + 0x8c], 0x3fc00000
mov dword [esp + 0x98], 0xbfc00000
mov dword [esp + 0x90], 0x3f000000
mov dword [esp + 0x94], 0
jmp 0x4e4157
cmp al, 2
jne 0x4e4120
mov dword [esp + 0x9c], 0xbf000000
mov dword [esp + 0x8c], 0x3fc00000
mov dword [esp + 0x98], 0xbfc00000
mov dword [esp + 0x90], 0xbf000000
mov dword [esp + 0x94], 0
jmp 0x4e4157
mov dword [esp + 0x9c], 0
mov dword [esp + 0x8c], 0x3fc00000
mov dword [esp + 0x98], 0xbfc00000
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0xa0], 0
lea eax, [ebp + 4]
lea ecx, [esp + 0xa4]
push eax
call fcn.004b8d70
lea eax, [esp + 0x8c]
lea ecx, [esp + 0xa4]
push eax
lea eax, [esp + 0xfc]
push ecx
lea edi, [ebp + 0x34]
push eax
mov esi, edi
call fcn.004ba3d0
fld dword [esp + 0x10c]
fadd dword [esi + 8]
lea eax, [esp + 0xa4]
add esp, 0xc
lea edx, [esp + 0xa4]
push eax
fstp dword [esp + 0x38]
fld dword [esp + 0x100]
fadd dword [esi + 4]
lea eax, [esp + 0x108]
push edx
push eax
fstp dword [esp + 0x3c]
fld dword [esp + 0x104]
fadd dword [esi]
fstp dword [esp + 0x38]
call fcn.004ba3d0
fldz
fldz
fldz
fldz
fld dword [esp + 0x118]
fadd dword [edi + 8]
mov esi, dword [ebx + 0x16c]
add esp, 0xc
add esi, 0x34
fstp st(2)
fld dword [esp + 0x108]
fadd dword [edi + 4]
mov eax, esi
fstp st(3)
fld dword [esp + 0x104]
fadd dword [edi]
fstp st(4)
fld dword [eax + 8]
fsub dword [esp + 0x34]
fstp dword [esp + 0x18]
fld dword [eax + 4]
fsub dword [esp + 0x30]
fstp dword [esp + 0x14]
fld dword [eax]
fsub dword [esp + 0x2c]
fstp st(1)
fld dword [esi + 8]
fsub st(2)
fstp dword [esp + 0x24]
fld dword [esi + 4]
fsub st(3)
fstp dword [esp + 0x20]
fld dword [esi]
fsub st(4)
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fmul st(0)
fld dword [esp + 0x1c]
fmul st(0)
faddp st(1)
fld dword [esp + 0x24]
fmul st(0)
faddp st(1)
fld dword [esp + 0x14]
fmul st(0)
fld st(2)
fmul st(0)
faddp st(1)
fld dword [esp + 0x18]
fmul st(0)
faddp st(1)
fcompp
fnstsw ax
test ah, 0x45
jne 0x4e42a0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ecx
jmp 0x4e42b2
fld st(3)
fstp dword [esp + 0x44]
fld st(2)
fstp dword [esp + 0x48]
fld st(1)
fstp dword [esp + 0x4c]
fcompp
fcompp
push 0
push 0
push 0
push 1
push 1
push 1
push 0
push dword [0x5f8d4c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
push dword [esp + 0x6c]
call fcn.004b4710
add esp, 0x2c
test eax, eax
je 0x4e4380
lea eax, [esp + 0x44]
push 0
push 0
push 0
push 1
push 0
push 0
push 1
push eax
push dword [esp + 0x28]
call fcn.004aeaa0
add esp, 0x24
test al, al
je 0x4e4380
mov ecx, ebx
push dword [0x5f8cb8]
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [esp + 0x50]
call fcn.004d14b0
mov dword [ebx + 0x2e4], 0x41700000
mov al, byte [ebx + 0x155]
and al, 0xdf
or al, 0x20
mov byte [ebx + 0x155], al
mov al, byte [ebx + 0x159]
and al, 0x7f
or al, 0x80
mov byte [ebx + 0x159], al
mov eax, dword [0x885b48]
add eax, 0x1f4
mov byte [esp + 0xc], 1
mov dword [ebx + 0x4c4], eax
mov al, byte [ebp + 0x1f5]
and al, 1
je 0x4e4371
mov dword [ebx + 0x170], ebp
mov ecx, ebx
mov dword [ebx + 0x30c], ebp
call fcn.004e6180
jmp 0x4e43de
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul dword [0x5f8ca4]
fmul dword [0x5f8dbc]
fnstcw word [esp + 0x10]
mov eax, dword [esp + 0x10]
or byte [esp + 0x11], 0xc
fldcw word [esp + 0x10]
mov dword [esp + 0x10], eax
fistp dword [esp + 0x38]
fldcw word [esp + 0x10]
mov eax, dword [esp + 0x38]
add eax, 0x2710
add eax, dword [0x885b48]
mov dword [ebx + 0x4e8], eax
mov al, byte [ebx + 0x159]
and al, 0x7f
mov byte [ebx + 0x159], al
lea ecx, [esp + 0xa4]
call fcn.004b8db0
jmp 0x4e4402
mov al, byte [ebx + 0x159]
fcompp
and al, 0x7f
fstp st(0)
mov byte [ebx + 0x159], al
cmp byte [esp + 0xc], 0
jne 0x4e441a
mov al, byte [ebx + 0x159]
shr al, 7
test al, al
je 0x4e4641
mov ecx, ebx
call fcn.004d1640
test al, al
je 0x4e4527
mov al, byte [ebx + 0x158]
and al, 0xfe
or al, 1
mov byte [ebx + 0x158], al
mov al, byte [ebx + 0x159]
and al, 0x7f
mov byte [ebx + 0x159], al
mov dword [ebx + 0x300], 0
mov dword [ebx + 0x304], 0
mov dword [ebx + 0x308], 0
mov esi, dword [ebx + 0x30c]
test esi, esi
je 0x4e4483
mov dl, byte [esi + 0x50]
and dl, 7
movzx eax, dl
cmp eax, 2
jne 0x4e4483
inc byte [esi + 0x1f9]
mov ecx, ebx
call fcn.004d0600
mov ecx, ebx
push 1
call fcn.004c5a30
mov ecx, ebx
mov edi, dword [ecx]
call dword [edi + 0x48]
mov eax, dword [ebx + 0x4b8]
test eax, eax
je 0x4e44ac
cmp eax, dword [ebx + 0x16c]
je 0x4e44ca
mov eax, dword [ebx + 0x16c]
mov dword [ebx + 0x4b8], eax
lea eax, [ebx + 0x4b8]
mov ecx, dword [ebx + 0x4b8]
push eax
call fcn.004a7480
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul dword [0x5f8ca4]
fmul dword [0x5f8d1c]
fnstcw word [esp + 0x10]
mov eax, dword [esp + 0x10]
or byte [esp + 0x11], 0xc
fldcw word [esp + 0x10]
mov dword [esp + 0x10], eax
fistp dword [esp + 0x38]
fldcw word [esp + 0x10]
mov eax, dword [esp + 0x38]
add eax, 0xbb8
add eax, dword [0x885b48]
mov dword [ebx + 0x4c4], eax
xor al, al
add esp, 0x110
pop ebp
pop edi
pop esi
pop ebx
ret
add esp, 0x110
mov al, 1
pop ebp
pop edi
pop esi
pop ebx
ret
mov eax, dword [ebx + 0x4c4]
mov esi, dword [0x885b48]
cmp esi, eax
jbe 0x4e4600
mov al, byte [ebx + 0x158]
and al, 0xf7
mov byte [ebx + 0x158], al
mov al, byte [ebx + 0x158]
and al, 0xfe
mov byte [ebx + 0x158], al
mov al, byte [ebx + 0x158]
and al, 0xef
mov byte [ebx + 0x158], al
mov al, byte [ebx + 0x159]
and al, 0x7f
mov byte [ebx + 0x159], al
mov dword [ebx + 0x2e4], 0x41200000
call fcn.005a41d0
and eax, 0xffff
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul dword [0x5f8ca4]
fmul dword [0x5f8dc0]
fnstcw word [esp + 0x10]
mov eax, dword [esp + 0x10]
or byte [esp + 0x11], 0xc
fldcw word [esp + 0x10]
mov dword [esp + 0x10], eax
fistp dword [esp + 0x38]
fldcw word [esp + 0x10]
mov eax, dword [esp + 0x38]
add eax, 0x4e20
add eax, dword [0x885b48]
mov dword [ebx + 0x4e8], eax
mov ecx, dword [ebx + 0x30c]
test ecx, ecx
je 0x4e4641
mov dl, byte [ecx + 0x50]
and dl, 7
movzx eax, dl
cmp eax, 2
jne 0x4e4641
dec byte [ecx + 0x1f9]
jmp 0x4e4641
mov eax, dword [ebx + 0x4b8]
test eax, eax
je 0x4e460e
cmp eax, edx
je 0x4e4626
mov dword [ebx + 0x4b8], edx
lea eax, [ebx + 0x4b8]
mov ecx, dword [ebx + 0x4b8]
push eax
call fcn.004a7480
mov al, byte [ebx + 0x154]
shr al, 7
test al, al
jne 0x4e4641
mov eax, dword [ebx + 0x16c]
mov ecx, ebx
push eax
call fcn.004c69e0
xor al, al
add esp, 0x110
pop ebp
pop edi
pop esi
pop ebx
ret