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

Disassembly:
push ebx
push esi
mov ebx, ecx
push edi
push ebp
sub esp, 0x68
mov eax, dword [ebx + 0x224]
cmp eax, 0x24
mov ebp, dword [esp + 0x7c]
je 0x4ec44d
cmp eax, 0x30
jne 0x4ec473
cmp dword [ebx + 0x34c], 0
je 0x4ec463
mov dl, byte [ebp + 0x50]
shr dl, 3
movzx eax, dl
test eax, eax
jne 0x4ec469
mov dword [ebx + 0x34c], ebp
add esp, 0x68
pop ebp
pop edi
pop esi
pop ebx
ret 8
cmp eax, 0x31
jne 0x4ec482
add esp, 0x68
pop ebp
pop edi
pop esi
pop ebx
ret 8
mov esi, dword [ebx + 0x2fc]
test esi, esi
je 0x4ec4c5
mov al, byte [esi + 0x50]
and al, 7
cmp al, 2
jne 0x4ec4c5
mov eax, dword [esi + 0x284]
cmp eax, 1
jne 0x4ec4b0
add esp, 0x68
pop ebp
pop edi
pop esi
pop ebx
ret 8
mov ecx, ebx
call fcn.004d48e0
test al, al
je 0x4ec4c5
add esp, 0x68
pop ebp
pop edi
pop esi
pop ebx
ret 8
mov dword [esp + 8], ebx
add dword [esp + 8], 4
add dword [esp + 8], 0x30
mov edi, dword [esp + 8]
mov dword [esp + 0x18], ebp
add dword [esp + 0x18], 4
add dword [esp + 0x18], 0x30
mov eax, dword [esp + 0x18]
fld dword [edi]
fsub dword [eax]
fstp dword [esp + 0x5c]
fld dword [edi + 4]
fsub dword [eax + 4]
lea esi, [esp + 0x5c]
fstp dword [esp + 0x60]
fld dword [edi + 8]
fsub dword [eax + 8]
lea edi, [esp + 0x40]
fstp dword [esp + 0x64]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x80]
fcomp dword [0x5f9c84]
fnstsw ax
test ah, 0x45
je 0x4ec531
movsx eax, word [ebp + 0x5c]
cmp eax, 0x7c
jne 0x4ecdc0
mov ecx, ebx
call fcn.004d48e0
test al, al
jne 0x4ecdc0
mov byte [esp + 0x1c], 0
call fcn.005a41d0
and al, 3
mov dword [esp + 0x24], 0x10
mov byte [esp + 0x20], al
call fcn.004a10c0
cmp ebp, eax
fldz
jne 0x4ec653
fld dword [ebp + 0x7c]
fst st(1)
fmul st(0)
fld dword [ebp + 0x78]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fld dword [ebp + 0x80]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fst st(1)
fsqrt
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp st(1)
fld dword [0x5f9ce4]
fmul st(1)
fmul dword [0x5f9af4]
fdiv dword [ebp + 0xc0]
fadd dword [0x5f9ce8]
fcomp dword [0x5f9cec]
fnstsw ax
test ah, 0x45
jne 0x4ec5c4
fld dword [0x5f9cec]
jmp 0x4ec60c
fld dword [ebp + 0x7c]
fst st(1)
fmul st(0)
fld dword [ebp + 0x78]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fld dword [ebp + 0x80]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fst st(1)
fsqrt
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp st(1)
fld dword [0x5f9ce4]
fmul st(1)
fmul dword [0x5f9af4]
fdiv dword [ebp + 0xc0]
fadd dword [0x5f9ce8]
fstp st(1)
fld st(0)
fnstcw word [esp + 0x28]
mov eax, dword [esp + 0x28]
or byte [esp + 0x29], 0xc
fldcw word [esp + 0x28]
fistp dword [esp + 0x38]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov al, dl
push eax
mov eax, 0x9c40
movzx ecx, dl
cdq
fldcw word [esp + 0x2c]
fstp st(0)
idiv ecx
push eax
push 0
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.00492230
fldz
mov al, byte [ebx + 0x154]
mov ecx, ebx
and al, 0xfe
mov byte [ebx + 0x154], al
fld dword [ebp + 0x7c]
fchs
fstp st(1)
fld dword [ebp + 0x78]
fchs
fstp dword [esp + 0x4c]
lea eax, [esp + 0x4c]
push eax
fst dword [esp + 0x54]
fstp st(0)
call fcn.004cce20
mov dword [esp + 0x14], eax
lea edx, [ebp + 4]
movsx esi, word [ebp + 0x5c]
fldz
fldz
mov eax, dword [esi*4 + 0x83d408]
mov edi, dword [eax + 0x1c]
mov ecx, edi
fldz
fldz
fldz
fld dword [ecx + 0x20]
fstp st(3)
fld dword [esp + 0x44]
fstp st(5)
fld st(4)
fmul dword [edx + 4]
fld dword [esp + 0x40]
fmul dword [edx]
faddp st(1)
fld dword [esp + 0x48]
fstp st(5)
fld st(4)
fmul dword [edx + 8]
mov dword [esp + 0x10], ebp
add dword [esp + 0x10], 4
add dword [esp + 0x10], 0x20
mov ecx, dword [esp + 0x10]
faddp st(1)
fstp st(2)
fld st(4)
fmul dword [ecx + 4]
fld dword [esp + 0x40]
fmul dword [ecx]
cmp esi, 0x7c
faddp st(1)
fld st(4)
fmul dword [ecx + 8]
faddp st(1)
fstp dword [esp + 0x2c]
jne 0x4ec770
fld dword [0x5f9cf0]
mov dword [esp + 0x24], 0x11
mov byte [esp + 0x1c], 2
fmul dword [ebp + 0x80]
fstp st(4)
fld dword [0x5f9cf0]
fmul dword [ebp + 0x7c]
fstp st(5)
fld dword [0x5f9cf0]
fmul dword [ebp + 0x78]
fstp dword [ebx + 0x78]
fld st(4)
fstp dword [ebx + 0x7c]
fld st(3)
fstp dword [ebx + 0x80]
mov dword [ebx + 0x80], 0
cmp dword [esp + 0x14], 1
je 0x4ec751
cmp dword [esp + 0x14], 3
jne 0x4ec759
mov dword [esp + 0x14], 2
cmp byte [0x5f4dd4], 0
je 0x4ecfb0
jmp 0x4ecc8e
mov dword [esp + 0xc], ebp
add dword [esp + 0xc], 4
add dword [esp + 0xc], 0x10
lea ecx, [ebp + 0x78]
fld dword [ecx + 4]
mov edx, dword [esp + 0xc]
fmul dword [edx + 4]
fld dword [ecx]
fmul dword [edx]
faddp st(1)
fld dword [ecx + 8]
fmul dword [edx + 8]
faddp st(1)
fcomp dword [0x5f9a88]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x4ecfc0
fld st(1)
fcomp dword [0x5f9a88]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4ec7c5
fld st(1)
fchs
jmp 0x4ec7c7
fld st(1)
fstp st(1)
fld dword [0x5f9cf4]
fmul st(3)
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4ec8b0
fld st(1)
fcomp dword [0x5f9a88]
fnstsw ax
test ah, 0x45
jne 0x4ec7f7
mov byte [esp + 0x1c], 4
jmp 0x4ec7fc
mov byte [esp + 0x1c], 3
fld dword [0x5f9cf8]
fmul dword [edi + 0x24]
mov eax, dword [esp + 0xc]
fstp st(3)
fld st(4)
fmul dword [eax + 4]
fld dword [esp + 0x40]
fmul dword [eax]
faddp st(1)
fld st(4)
fmul dword [eax + 8]
faddp st(1)
fabs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp st(5)
fld st(4)
fcomp st(3)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4ecfd0
fld dword [0x5f9cf0]
mov dword [esp + 0x24], 0x11
fmul dword [ebp + 0x80]
fstp st(4)
fld dword [0x5f9cf0]
fmul dword [ebp + 0x7c]
fstp st(5)
fld dword [0x5f9cf0]
fmul dword [ebp + 0x78]
fstp dword [ebx + 0x78]
fld st(4)
fstp dword [ebx + 0x7c]
fld st(3)
fstp dword [ebx + 0x80]
mov dword [ebx + 0x80], 0
cmp dword [esp + 0x14], 1
je 0x4ec88f
cmp dword [esp + 0x14], 3
jne 0x4ec897
mov dword [esp + 0x14], 2
cmp byte [0x5f4dd4], 0
je 0x4ecfe0
jmp 0x4ecc8e
fld dword [esp + 0x2c]
fcomp dword [0x5f9ac0]
fnstsw ax
test ah, 0x45
jne 0x4ec8c8
cmp byte [esp + 0x20], 1
ja 0x4ec8d3
cmp byte [esp + 0x20], 0
jne 0x4ecc22
mov byte [esp + 0x1c], 1
mov eax, dword [esp + 0xc]
fld dword [edi + 0x24]
fstp st(5)
fld st(4)
fstp st(3)
fld dword [edi + 0x18]
fstp st(2)
fld dword [edi + 0x28]
fstp st(4)
fld dword [eax + 8]
fst st(1)
fcomp dword [0x5f9cfc]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4ec936
fld st(1)
mov eax, dword [esp + 0xc]
fmul dword [eax + 8]
mov eax, dword [esp + 0x10]
fstp st(5)
fld st(3)
fmul dword [eax + 8]
mov eax, dword [esp + 0x18]
fstp st(4)
fld dword [eax + 8]
fadd st(4)
fstp st(4)
fld st(3)
fadd st(5)
fstp st(4)
fld st(1)
fchs
fadd st(3)
jmp 0x4ec9cc
fcom dword [0x5f9ac0]
fnstsw ax
test ah, 0x45
jne 0x4ec9b0
fld st(2)
mov eax, dword [esp + 0xc]
fmul dword [eax + 8]
mov eax, dword [esp + 0x10]
fstp st(5)
fld st(3)
fmul dword [eax + 8]
mov eax, dword [esp + 0x18]
fstp st(4)
fld dword [eax + 8]
fadd st(4)
fstp st(4)
mov eax, dword [esp + 8]
fld st(3)
fadd st(5)
fstp st(2)
fld st(1)
fstp st(4)
fld st(2)
fstp st(5)
fld st(1)
fsub dword [eax + 8]
fstp st(3)
fld st(2)
fcomp dword [0x5f9a88]
fnstsw ax
test ah, 0x45
jne 0x4ec9ce
fld dword [0x5f9bf8]
fmul st(3)
fadd dword [ebx + 0x3c]
fstp dword [ebx + 0x3c]
mov eax, dword [esp + 8]
fld st(1)
fsub dword [eax + 8]
fmul dword [0x5f9d00]
faddp st(4)
jmp 0x4ec9ce
fld st(3)
mov eax, dword [esp + 0x10]
fmul dword [eax + 8]
mov eax, dword [esp + 0x18]
fstp st(4)
fld dword [eax + 8]
fadd st(4)
fstp st(4)
fld st(3)
fstp st(4)
fld st(4)
fstp st(5)
fld dword [ebp + 0x7c]
fstp st(3)
fld st(2)
fmul st(0)
fld dword [ebp + 0x78]
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fld dword [ebp + 0x80]
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]
mov eax, dword [esp + 8]
fstp st(3)
fld st(3)
fsub dword [eax + 8]
fld st(5)
fdiv st(4)
fdivp st(1)
fstp dword [esp + 0x30]
fcompp
fcompp
fstp st(0)
call fcn.005a41d0
movzx eax, ax
and eax, 0xff
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul qword [0x5f9d08]
fadd qword [0x5f9d10]
fmul dword [esp + 0x30]
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], eax
fld dword [ebp + 0x78]
fstp dword [esp + 0x40]
fld dword [ebp + 0x7c]
fstp dword [esp + 0x44]
fld dword [ebp + 0x80]
lea ecx, [esp + 0x40]
fstp dword [esp + 0x48]
call fcn.004ba560
fldz
fldz
fldz
fld dword [0x5f9ac4]
fmul dword [esp + 0x34]
cmp dword [esp + 0x14], 1
fst st(1)
fmul dword [esp + 0x48]
fstp st(2)
fld st(0)
fmul dword [esp + 0x44]
fstp st(3)
fld st(0)
fmul dword [esp + 0x40]
fstp dword [esp + 0x40]
fld st(2)
fstp dword [esp + 0x44]
fld st(1)
fstp dword [esp + 0x48]
je 0x4ecaaf
cmp dword [esp + 0x14], 3
jne 0x4ecac0
fld dword [0x5f9cdc]
fmul dword [esp + 0x34]
fadd dword [esp + 0x48]
jmp 0x4ecac8
fld dword [esp + 0x48]
fadd dword [esp + 0x34]
fstp dword [esp + 0x48]
fld dword [esp + 0x40]
fstp dword [ebx + 0x78]
fld dword [esp + 0x44]
fstp dword [ebx + 0x7c]
fld dword [esp + 0x48]
fstp dword [ebx + 0x80]
add dword [esp + 0x14], 2
cmp dword [esp + 0x14], 3
jle 0x4ecaf5
sub dword [esp + 0x14], 4
cmp dword [ebp + 0x284], 0
jne 0x4ecff0
fcompp
mov ecx, ebp
fstp st(0)
call fcn.00535320
mov esi, eax
test esi, esi
je 0x4eccad
call fcn.005a41d0
movzx eax, ax
fldz
fldz
and eax, 1
je 0x4ecb78
fld dword [0x5f9bf8]
mov ecx, dword [esp + 0x10]
lea edx, [ebp + 4]
fmul dword [ecx + 8]
fld dword [0x5f9ac0]
fmul dword [edx + 8]
lea edi, [ebx + 0x78]
fadd dword [edi + 8]
faddp st(1)
fstp st(1)
fld dword [0x5f9bf8]
fmul dword [ecx + 4]
fld dword [0x5f9ac0]
fmul dword [edx + 4]
fadd dword [edi + 4]
faddp st(1)
fstp st(2)
fld dword [0x5f9bf8]
fmul dword [ecx]
fld dword [0x5f9ac0]
fmul dword [edx]
fadd dword [edi]
jmp 0x4ecbc6
fld dword [0x5f9bf8]
mov ecx, dword [esp + 0x10]
lea edx, [ebp + 4]
fmul dword [ecx + 8]
fld dword [0x5f9ac0]
fmul dword [edx + 8]
lea edi, [ebx + 0x78]
fsubr dword [edi + 8]
faddp st(1)
fstp st(1)
fld dword [0x5f9bf8]
fmul dword [ecx + 4]
fld dword [0x5f9ac0]
fmul dword [edx + 4]
fsubr dword [edi + 4]
faddp st(1)
fstp st(2)
fld dword [0x5f9bf8]
fmul dword [ecx]
fld dword [0x5f9ac0]
fmul dword [edx]
fsubr dword [edi]
faddp st(1)
fstp dword [esi + 0x78]
fld st(1)
fstp dword [esi + 0x7c]
fst dword [esi + 0x80]
mov eax, dword [esp + 0xc]
mov ecx, esi
fld dword [0x5f9bfc]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [esp + 0x1c]
fmul dword [eax + 8]
push eax
fstp dword [esp]
mov eax, dword [esp + 0x20]
fld dword [0x5f9bfc]
fmul dword [eax + 4]
push eax
fstp dword [esp]
mov eax, dword [esp + 0x24]
fld dword [0x5f9bfc]
fmul dword [eax]
push eax
fstp dword [esp]
fcompp
call fcn.00495a10
jmp 0x4eccad
fld dword [0x5f9cf0]
mov dword [esp + 0x24], 0x11
mov byte [esp + 0x1c], 2
fmul dword [ebp + 0x80]
fstp st(4)
fld dword [0x5f9cf0]
fmul dword [ebp + 0x7c]
fstp st(5)
fld dword [0x5f9cf0]
fmul dword [ebp + 0x78]
fstp dword [ebx + 0x78]
fld st(4)
fstp dword [ebx + 0x7c]
fld st(3)
fstp dword [ebx + 0x80]
mov dword [ebx + 0x80], 0
cmp dword [esp + 0x14], 1
je 0x4ecc79
cmp dword [esp + 0x14], 3
jne 0x4ecc81
mov dword [esp + 0x14], 2
cmp byte [0x5f4dd4], 0
je 0x4ed000
fcompp
fcompp
mov eax, dword [ebp + 0x64]
mov ecx, 0x95cdbe
push dword [0x5f9a88]
push 0x91
push eax
fstp st(0)
call fcn.0057c840
mov eax, dword [ebp + 0x1a4]
test eax, eax
je 0x4ecce3
cmp dword [ebx + 0x32c], 6
jne 0x4eccd0
push 0x3e8
push eax
push ebx
push 1
push 0xa
jmp 0x4eccdb
push 0x3e8
push eax
push ebx
push 1
push 9
call fcn.00475c50
add esp, 0x14
movzx eax, byte [esp + 0x1c]
dec eax
cmp eax, 3
ja case.0x4eccee.1
jmp dword [eax*4 + 0x5f9f2c]
push dword [esp + 0x14]
push 3
jmp 0x4ecd17
mov al, byte [esp + 0x14]
push eax
push 2
jmp 0x4ecd17
mov al, byte [esp + 0x14]
push eax
push 6
jmp 0x4ecd17
mov al, byte [esp + 0x14]
push eax
push 1
mov ecx, ebx
push dword [0x5f9ac8]
push dword [esp + 0x30]
push ebp
call fcn.004ea420
mov eax, dword [ebx + 0x224]
cmp eax, 0x30
je 0x4ecd39
cmp eax, 0x31
jne 0x4ecd55
mov al, byte [ebx + 0x157]
shr al, 4
and al, 1
je 0x4ecd55
cmp dword [ebx + 0x34c], 0
jne 0x4ecd55
mov dword [ebx + 0x34c], ebp
cmp byte [esp + 0x1c], 1
jne 0x4ecd68
mov al, byte [ebx + 0x15b]
and al, 0xfe
or al, 1
jmp 0x4ecd70
mov al, byte [ebx + 0x15b]
and al, 0xfe
mov byte [ebx + 0x15b], al
lea ecx, [esp + 0x40]
call fcn.004ba560
fld dword [0x5f9d18]
fmul dword [esp + 0x48]
push eax
mov ecx, ebp
fstp dword [esp]
fld dword [0x5f9d18]
fmul dword [esp + 0x48]
push eax
fstp dword [esp]
fld dword [0x5f9d18]
fmul dword [esp + 0x48]
push eax
fstp dword [esp]
call fcn.004959a0
mov ecx, ebx
push 0x75
jmp 0x4ecfa1
fld dword [ebx + 0x11c]
fcomp dword [0x5f9d1c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4ecdea
fld dword [esp + 0x80]
fcomp dword [0x5f9b00]
fnstsw ax
test ah, 0x45
je 0x4ece25
fld dword [esp + 0x80]
fcomp dword [0x5f9d20]
fnstsw ax
test ah, 0x45
jne 0x4ecfa6
mov ecx, ebx
call fcn.004d48e0
test al, al
je 0x4ece25
fld dword [esp + 0x80]
fcomp dword [0x5f9bfc]
fnstsw ax
test ah, 0x45
jne 0x4ecfa6
mov al, byte [ebx + 0x154]
mov ecx, ebx
and al, 0xfe
mov byte [ebx + 0x154], al
fldz
fld dword [ebp + 0x7c]
fchs
fstp st(1)
fld dword [ebp + 0x78]
fchs
fstp dword [esp + 0x54]
lea eax, [esp + 0x54]
push eax
fst dword [esp + 0x5c]
fstp st(0)
call fcn.004cce20
mov ecx, ebx
mov dword [esp], eax
call fcn.004d48e0
test al, al
je 0x4ece80
movsx eax, word [ebp + 0x5c]
cmp eax, 0x7c
jne 0x4ece80
mov al, byte [esp]
push eax
push 0
push dword [0x5f9d24]
jmp 0x4ece8c
mov al, byte [esp]
push eax
push 0
push dword [0x5f9d28]
mov ecx, ebx
push 0x10
push ebp
call fcn.004ea420
mov ecx, ebx
add dword [esp], 0x19
push 1
push dword [esp + 4]
push 0x3e8
call fcn.004d09b0
mov eax, dword [ebx + 0x224]
cmp eax, 0x24
je 0x4ecec1
cmp eax, 0x30
je 0x4ecec1
cmp eax, 0x31
jne 0x4ecf03
cmp dword [ebx + 0x34c], 0
jne 0x4ecf03
mov ecx, ebx
call fcn.004d48e0
test al, al
je 0x4ecefd
mov al, byte [ebx + 0x54]
shr al, 1
and al, 1
jne 0x4ecefd
movsx eax, word [ebp + 0x5c]
cmp eax, 0x7c
je 0x4ecefd
fld dword [ebx + 0x11c]
fcomp dword [0x5f9d1c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x4ecf03
mov dword [ebx + 0x34c], ebp
mov al, byte [ebx + 0x15b]
and al, 0xfe
mov byte [ebx + 0x15b], al
movsx eax, word [ebp + 0x5c]
fldz
fldz
cmp eax, 0x7c
je 0x4ecf57
mov al, byte [ebx + 0x54]
shr al, 1
and al, 1
jne 0x4ecf57
fld dword [0x5f9d2c]
fmul dword [ebp + 0x80]
fstp st(1)
fld dword [0x5f9d2c]
fmul dword [ebp + 0x7c]
fstp st(2)
fld dword [0x5f9d2c]
fmul dword [ebp + 0x78]
fstp dword [ebx + 0x78]
fld st(1)
fstp dword [ebx + 0x7c]
fst dword [ebx + 0x80]
fcompp
mov dword [ebx + 0x80], 0
lea ecx, [esp + 0x40]
call fcn.004ba560
fld dword [0x5f9d30]
fmul dword [esp + 0x48]
push eax
mov ecx, ebp
fstp dword [esp]
fld dword [0x5f9d30]
fmul dword [esp + 0x48]
push eax
fstp dword [esp]
fld dword [0x5f9d30]
fmul dword [esp + 0x48]
push eax
fstp dword [esp]
call fcn.004959a0
mov ecx, ebx
push 0x75
call fcn.004e5a10
add esp, 0x68
pop ebp
pop edi
pop esi
pop ebx
ret 8
fcompp
fcompp
fstp st(0)
jmp 0x4eccad
fcompp
fcompp
fstp st(0)
jmp 0x4eccad
fcompp
fcompp
fstp st(0)
jmp 0x4eccad
fcompp
fcompp
fstp st(0)
jmp 0x4eccad
fcompp
fstp st(0)
jmp 0x4eccad
fcompp
fcompp
fstp st(0)
jmp 0x4eccad