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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe4
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi + 0x3a8], 0x31b
mov dword [esp + 0x18], edi
jne 0x4ce637
mov eax, edi
call fcn.0049b700
test eax, eax
je 0x4ce637
mov edx, dword [eax]
push 0
push 0x6e879c
push 0x6d8b80
mov ecx, eax
mov eax, dword [edx + 0x74]
push 0
call eax
call fcn.0046a2d0
push eax
call fcn.0060807c
add esp, 0x14
mov dword [edi + 0x3a8], eax
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0x54]
mov edx, dword [ebx + 0x58]
add eax, 0xffffffff
cmp eax, 0x16
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
ja case.0x4ce65e.2
movzx eax, byte [eax + 0x4cf034]
jmp dword [eax*4 + 0x4cf01c]
lea esi, [esp + 0x1c]
mov ecx, edi
call fcn.004b6470
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x24]
jge 0x4ce684
mov edx, dword [esp + 0x20]
cmp edx, dword [esp + 0x28]
jl 0x4ce692
mov eax, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
fld dword [esp + 0x30]
fild dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x4ce779
fild dword [esp + 0x24]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4ce77b
fld dword [esp + 0x34]
fild dword [esp + 0x20]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x4ce779
fild dword [esp + 0x28]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4ce77b
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
push 0xff
push eax
push ecx
mov ecx, edi
call fcn.004b6540
mov byte [esp + 0x12], al
cmp byte [edi + 0x366], 0
je 0x4ce785
cmp byte [esp + 0x12], 0
je 0x4ce785
cmp dword [edi + 0x3a8], 0
je 0x4ce785
mov eax, dword [edi + 0x3ac]
test eax, eax
je 0x4ce785
add eax, 4
je 0x4ce785
push 1
call fcn.0046cb00
add esp, 4
test al, al
jne 0x4ce785
mov ecx, dword [edi + 0x3a8]
test ecx, ecx
je 0x4ce7a8
mov eax, dword [edi + 0x3ac]
test eax, eax
je 0x4ce7a8
add eax, 4
je 0x4ce7a8
mov ebx, dword [ecx]
or edx, 0xffffffff
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
or esi, edx
or edx, edx
mov dword [eax + 4], esi
mov dword [eax + 8], edx
or edx, 0xffffffff
mov dword [eax + 0xc], edx
mov edx, dword [ebx + 8]
lea eax, [edi + 0x3ac]
push eax
push edi
call edx
mov ebx, dword [ebp + 0xc]
jmp 0x4ce7a8
fstp st(0)
mov byte [esp + 0x12], 0
jmp 0x4ce6f8
mov ecx, dword [edi + 0x3a8]
test ecx, ecx
je 0x4ce7a8
mov eax, dword [edi + 0x3ac]
test eax, eax
je 0x4ce7a8
add eax, 4
je 0x4ce7a8
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push 1
push edi
call edx
cmp byte [esp + 0x12], 0
jne 0x4ce7bc
cmp byte [edi + 0x408], 0
je 0x4ce92e
mov ecx, edi
call fcn.004b64f0
cmp byte [esp + 0x12], 0
je 0x4ce92e
mov eax, dword [edi + 0x354]
test eax, eax
je 0x4ce7ef
cmp eax, 1
jne 0x4ce7f6
cmp byte [edi + 0x359], 0
je 0x4ce7f6
cmp byte [edi + 0x35a], 0
je 0x4ce7f6
mov esi, edi
call fcn.004b63f0
mov ebx, 2
cmp dword [edi + 0x354], ebx
jne 0x4ce80c
push 1
mov esi, edi
call fcn.004b62d0
cmp dword [edi + 0x354], 1
jne 0x4ceb2c
lea eax, [edi + 0x3fc]
push eax
lea ecx, [esp + 0x34]
mov edx, edi
mov dword [esp + 0x30], eax
call fcn.004ce520
test eax, eax
jne 0x4ceb2c
mov eax, dword [edi + 0x3ec]
test eax, eax
je 0x4ce846
add eax, 4
jmp 0x4ce848
xor eax, eax
push 0
push 0x6e84fc
push 0x6d8b80
push 0
call fcn.0046a2d0
push eax
call fcn.0060807c
add esp, 0x14
test eax, eax
je 0x4ceb2c
movzx edx, byte [edi + 0x3fd]
fldz
xor ecx, ecx
mov ch, byte [edi + 0x3ff]
sub esp, 0x10
mov cl, byte [edi + 0x3fe]
shl ecx, 8
or ecx, edx
mov edx, dword [esp + 0x3c]
movzx edx, byte [edx]
or dword [eax + 8], ebx
shl ecx, 8
or ecx, edx
mov dword [eax + 0x268], ecx
mov eax, esp
or ecx, 0xffffffff
mov dword [eax], ecx
push 1
or edx, ecx
mov dword [eax + 4], edx
push ecx
or esi, ecx
mov dword [eax + 8], esi
or ebx, ecx
mov dword [eax + 0xc], ebx
mov eax, edi
fstp dword [esp]
push 1
push 1
call fcn.0049b700
push eax
call fcn.004af9d0
cmp dword [edi + 0x3f4], 0
je 0x4ceb2c
mov edi, dword [ebp + 8]
lea esi, [esp + 0x4c]
call fcn.004a0f70
mov eax, dword [eax]
test eax, eax
je 0x4ce8f1
add eax, 4
jmp 0x4ce8f3
xor eax, eax
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x3f4]
mov esi, dword [esp + 0x2c]
mov edx, dword [ecx]
push 0
push esi
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x4c]
call fcn.00401700
mov edi, dword [esp + 0x18]
mov eax, dword [edi + 8]
neg eax
sbb eax, eax
add eax, 0xf4241
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [edi + 0x354], 1
mov byte [edi + 0x366], 1
jne 0x4ceb01
fldz
fcom dword [ebx + 0x5c]
fnstsw ax
test ah, 0x41
jp 0x4ceaff
mov ecx, dword [edi + 0x414]
fld dword [ebx + 0x5c]
test ecx, ecx
fild dword [edi + 0x414]
jge 0x4ce96b
fadd dword [0x6c0a38]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4ceaff
fcomp dword [ebx + 0x60]
fnstsw ax
test ah, 0x41
jp 0x4ceb01
mov edx, dword [edi + 0x418]
fld dword [ebx + 0x60]
test edx, edx
fild dword [edi + 0x418]
jge 0x4ce99f
fadd dword [0x6c0a38]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4ceb01
fld dword [ebx + 0x60]
lea ecx, [edi + 0x3fc]
fnstcw word [esp + 0x12]
mov dword [esp + 0x2c], ecx
movzx eax, word [esp + 0x12]
or eax, 0xc00
mov dword [esp + 0x14], eax
fldcw word [esp + 0x14]
fistp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
mov edx, eax
fldcw word [esp + 0x12]
imul edx, dword [edi + 0x410]
fld dword [ebx + 0x5c]
fnstcw word [esp + 0x12]
movzx eax, word [esp + 0x12]
or eax, 0xc00
mov dword [esp + 0x14], eax
fldcw word [esp + 0x14]
fistp qword [esp + 0x30]
mov eax, dword [esp + 0x30]
add edx, eax
mov eax, dword [edi + 0x41c]
mov edx, dword [eax + edx*4]
mov eax, dword [edi + 0x3ec]
fldcw word [esp + 0x12]
test eax, eax
mov dword [ecx], edx
je 0x4cea25
add eax, 4
jmp 0x4cea27
xor eax, eax
push 0
push 0x6e84fc
push 0x6d8b80
push 0
call fcn.0046a2d0
push eax
call fcn.0060807c
add esp, 0x14
test eax, eax
je 0x4ceb01
movzx edx, byte [edi + 0x3fd]
fldz
xor ecx, ecx
mov ch, byte [edi + 0x3ff]
sub esp, 0x10
mov cl, byte [edi + 0x3fe]
shl ecx, 8
or ecx, edx
mov edx, dword [esp + 0x3c]
movzx edx, byte [edx]
or dword [eax + 8], 2
shl ecx, 8
or ecx, edx
mov dword [eax + 0x268], ecx
mov eax, esp
or ecx, 0xffffffff
mov dword [eax], ecx
push 1
or edx, ecx
mov dword [eax + 4], edx
push ecx
or esi, ecx
mov dword [eax + 8], esi
or ebx, ecx
mov dword [eax + 0xc], ebx
mov eax, edi
fstp dword [esp]
push 1
push 1
call fcn.0049b700
push eax
call fcn.004af9d0
cmp dword [edi + 0x3f4], 0
je 0x4ceb01
mov edi, dword [ebp + 8]
lea esi, [esp + 0x48]
call fcn.004a0f70
mov eax, dword [eax]
test eax, eax
je 0x4ceacd
add eax, 4
jmp 0x4ceacf
xor eax, eax
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x3f4]
mov esi, dword [esp + 0x2c]
mov edx, dword [ecx]
push 0
push esi
push eax
mov eax, dword [edx + 4]
call eax
lea edi, [esp + 0x48]
call fcn.00401700
mov edi, dword [esp + 0x18]
mov dword [esp + 0x48], 0
jmp 0x4ceb01
fstp st(0)
cmp dword [edi + 0x3e8], 0
jne 0x4ceb2c
cmp dword [edi + 0x354], 1
jne 0x4ceb1a
mov esi, edi
call fcn.004b6380
cmp dword [edi + 0x354], 3
jne 0x4ceb2c
push 1
mov ecx, edi
call fcn.004b6240
mov eax, dword [edi + 8]
neg eax
sbb eax, eax
add eax, 0xf4241
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp byte [edi + 0x408], 0
mov dword [edi + 0x360], 3
jne 0x4ceb60
lea ecx, [edi + 0x400]
push ecx
call fcn.00495ac0
lea esi, [esp + 0x1c]
mov ecx, edi
call fcn.004b6470
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x24]
jge 0x4ce684
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x28]
jge 0x4ce684
fld dword [esp + 0x30]
fild dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x4ced49
fild dword [esp + 0x24]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4ced4b
fld dword [esp + 0x34]
fild dword [esp + 0x20]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x4ced49
fild dword [esp + 0x28]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4ced4b
cmp byte [ebx + 0x6c], 0
jne 0x4ced4b
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push 0xff
push ecx
push edx
mov ecx, edi
call fcn.004b6540
test al, al
je 0x4ced4b
mov ecx, dword [edi + 0x3a8]
test ecx, ecx
je 0x4cec2b
mov eax, dword [edi + 0x3ac]
test eax, eax
je 0x4cec2b
add eax, 4
je 0x4cec2b
mov byte [edi + 0x366], 0
mov eax, dword [ecx]
mov edx, dword [eax + 4]
mov ebx, 1
push ebx
push edi
call edx
jmp 0x4cec30
mov ebx, 1
mov ecx, edi
call fcn.004b64f0
push ebx
mov esi, edi
call fcn.004b62d0
cmp byte [edi + 0x219], bl
je 0x4cec4b
or dword [edi + 8], 7
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
mov byte [edi + 0x219], bl
mov dword [eax], ecx
cmp byte [edi + 0x408], 0
jne 0x4cecd4
mov eax, edi
call fcn.0049b700
mov edx, dword [eax + 0x148]
mov eax, edi
mov dword [edi + 0x3e8], edx
call fcn.0049b700
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x68]
push edi
call eax
mov eax, edi
mov byte [edi + 0x408], bl
call fcn.0049b700
mov ecx, eax
mov ecx, dword [ecx + 0x144]
lea eax, [esp + 0x30]
call fcn.00411830
lea ebx, [edi + 0x40c]
lea esi, [esp + 0x30]
mov eax, ebx
call fcn.0047a0b0
push ebx
mov eax, edi
call fcn.0049b700
mov ecx, esi
mov edx, eax
call fcn.004b26e0
mov eax, 0xf4240
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0
push 0
xor ecx, ecx
lea esi, [esp + 0x58]
call fcn.00479300
lea ebx, [edi + 0x40c]
call fcn.00479500
mov eax, esi
call fcn.00479430
mov eax, edi
call fcn.0049b700
mov ecx, dword [edi + 0x3e8]
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
push ecx
mov ecx, eax
call edx
xor ebx, ebx
push 1
mov ecx, edi
mov dword [edi + 0x3e8], ebx
call fcn.004b6240
cmp byte [edi + 0x219], bl
je 0x4ced29
or dword [edi + 8], 7
mov byte [edi + 0x219], bl
mov byte [edi + 0x408], bl
mov dword [edi + 0x360], ebx
mov eax, 0xf4240
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
fstp st(0)
cmp byte [edi + 0x408], 0
je case.0x4ce65e.2
push 0
push 0
xor ecx, ecx
lea esi, [esp + 0xa8]
call fcn.00479300
lea ebx, [edi + 0x40c]
call fcn.00479500
mov eax, esi
call fcn.00479430
mov eax, edi
call fcn.0049b700
mov ecx, dword [edi + 0x3e8]
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
push ecx
mov ecx, eax
call edx
xor ebx, ebx
push 1
mov ecx, edi
mov dword [edi + 0x3e8], ebx
call fcn.004b6240
cmp byte [edi + 0x219], bl
je 0x4ced29
or dword [edi + 8], 7
mov byte [edi + 0x219], bl
mov byte [edi + 0x408], bl
mov dword [edi + 0x360], ebx
mov eax, 0xf4240
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea eax, [edi + 0x400]
push eax
call fcn.004959f0
fstp dword [esp + 0x14]
mov cl, byte [edi + 0x408]
test cl, cl
je 0x4cee4c
fld1
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
je 0x4ced3b
test cl, cl
je 0x4cee4c
push 0
push 0
xor ecx, ecx
lea esi, [esp + 0x80]
call fcn.00479300
lea ebx, [edi + 0x40c]
call fcn.00479500
mov eax, esi
call fcn.00479430
mov eax, edi
call fcn.0049b700
mov ecx, dword [edi + 0x3e8]
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
push ecx
mov ecx, eax
call edx
xor eax, eax
mov dword [edi + 0x3e8], eax
mov byte [edi + 0x408], al
xor ebx, ebx
lea esi, [esp + 0x1c]
mov ecx, edi
mov dword [edi + 0x360], ebx
call fcn.004b6470
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x24]
jge 0x4ce684
mov ecx, dword [esp + 0x20]
cmp ecx, dword [esp + 0x28]
jge 0x4ce684
fld dword [esp + 0x30]
fild dword [esp + 0x1c]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x4cef52
fild dword [esp + 0x24]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4cef54
fld dword [esp + 0x34]
fild dword [esp + 0x20]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x4cef52
fild dword [esp + 0x28]
fcompp
fnstsw ax
test ah, 0x41
jne 0x4cef54
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
push 0xff
push edx
push eax
mov ecx, edi
call fcn.004b6540
test al, al
je 0x4cef54
mov ecx, edi
call fcn.004b64f0
cmp dword [edi + 0x3f4], ebx
je 0x4cef34
mov edi, dword [ebp + 8]
lea esi, [esp + 0x44]
call fcn.004a0f70
mov eax, dword [eax]
cmp eax, ebx
je 0x4cef07
lea edx, [eax + 4]
jmp 0x4cef09
xor edx, edx
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x3f4]
mov esi, dword [ecx]
push 1
add eax, 0x3fc
push eax
push edx
mov edx, dword [esi + 4]
call edx
lea edi, [esp + 0x44]
call fcn.00401700
mov edi, dword [esp + 0x18]
mov dword [esp + 0x44], ebx
cmp byte [edi + 0x35c], 0
jne 0x4cef54
mov eax, dword [edi]
mov edx, dword [eax + 0x78]
push ebx
push 1
mov ecx, edi
call edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
fstp st(0)
push 1
mov ecx, edi
call fcn.004b6240
cmp byte [edi + 0x219], 0
je 0x4cef6a
or dword [edi + 8], 7
mov byte [edi + 0x219], 0
mov eax, 0xf4240
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp dword [edi + 0x3e8], 0
je case.0x4ce65e.2
cmp dword [ebx + 0x10], 0x1b
jne case.0x4ce65e.2
cmp byte [edi + 0x408], 0
mov dword [edi + 0x360], 0
je 0x4cef54
push 0
push 0
xor ecx, ecx
lea esi, [esp + 0xd0]
call fcn.00479300
lea ebx, [edi + 0x40c]
call fcn.00479500
mov eax, esi
call fcn.00479430
mov eax, edi
call fcn.0049b700
mov ecx, dword [edi + 0x3e8]
mov edx, dword [eax]
mov edx, dword [edx + 0x68]
push ecx
mov ecx, eax
call edx
xor eax, eax
mov dword [edi + 0x3e8], eax
mov byte [edi + 0x408], al
jmp 0x4cef54
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
push eax
push ebx
push ecx
mov ecx, edi
call fcn.0049f440
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
pop edi
pop esi
mov eax, 0xf4241
pop ebx
mov esp, ebp
pop ebp
ret 0xc