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

Disassembly:
mov eax, dword [esp + 0x48]
sub esp, 0x24
test eax, eax
push ebx
push ebp
push esi
push edi
mov esi, ecx
jne 0x4f9572
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x74]
push edx
mov edx, dword [esp + 0x74]
push eax
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x6c]
push edx
push eax
mov eax, dword [esp + 0x68]
push ecx
mov ecx, dword [esp + 0x70]
sub esp, 0xc
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x80]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x6c]
mov dword [edx + 8], eax
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
push edx
mov edx, dword [esp + 0x6c]
push eax
push ecx
mov ecx, dword [esi + 0x9c8]
push edx
call fcn.004d39b0
mov eax, dword [esi + 0x4e0]
test eax, eax
mov ebx, 1
jne 0x4f951f
mov ecx, dword [esi + 0x9c8]
call fcn.004d3580
test eax, eax
jne 0x4f951f
mov eax, dword [0x7a39fc]
mov edx, dword [esi + 4]
mov ecx, dword [eax + 8]
push edx
call fcn.004ae910
test eax, eax
je 0x4f951f
mov ecx, esi
call fcn.004f1460
push ebx
mov ecx, esi
call fcn.004ccd80
push 0x3f
mov ecx, esi
call fcn.004cc630
test eax, eax
jne 0x4f9d8b
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
lea eax, [esp + 0xcc]
push eax
push ebx
push 0xffff
mov dword [esp + 0xd8], ebx
push 0x3f
mov ecx, esi
call fcn.004cea20
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x48
movzx ecx, byte [esp + 0x78]
mov ebp, dword [esp + 0x68]
test ebp, ebp
mov eax, 0x7f000000
mov dword [esi + 0x524], eax
mov dword [esi + 0x528], eax
mov dword [esp + 0x18], ecx
jne 0x4f95e7
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x4f95e7
mov eax, dword [esp + 0x3c]
cmp eax, 0xff
je 0x4f95e7
cmp eax, 0xfe
mov ecx, dword [esi + 0xa74]
jne 0x4f95ce
mov edx, dword [esp + 0x38]
push edx
call fcn.005a68e0
test eax, eax
jne 0x4f95e7
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x48
mov edx, dword [esp + 0x44]
push edx
mov edx, dword [esp + 0x44]
push edx
push eax
mov eax, dword [esp + 0x44]
push eax
call fcn.005a5550
test al, al
je 0x4f95c2
mov ecx, dword [0x7a39fc]
mov edx, dword [esp + 0x58]
mov ecx, dword [ecx + 8]
push edx
call fcn.004ae750
test ebp, ebp
mov edi, eax
mov ebx, 1
jne 0x4f9653
test edi, edi
je 0x4f9653
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x30]
test eax, eax
je 0x4f9653
mov edi, dword [edi + 4]
cmp edi, dword [esi + 4]
je 0x4f9653
mov eax, dword [esi + 0xa88]
test eax, eax
jne 0x4f9653
mov ecx, dword [esp + 0x58]
push ecx
mov ecx, esi
call fcn.00517a20
test eax, eax
je 0x4f95c2
mov al, byte [eax + 4]
mov dl, al
and dl, 0xc
cmp dl, 4
je 0x4f95c2
test al, 0x10
je 0x4f9653
test bl, al
je 0x4f95c2
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x58]
cmp eax, 0x7f000000
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x7c], edx
je 0x4f96e4
mov ecx, dword [0x7a39fc]
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x20]
push edx
push eax
call fcn.004aed70
mov ecx, eax
call fcn.004d8230
cmp al, byte [0x74666c]
jne 0x4f95c2
mov ecx, dword [esp + 0x20]
mov al, byte [ecx + 8]
cmp al, byte [0x746633]
jbe 0x4f95c2
call fcn.004cb120
mov ecx, esi
mov edi, eax
call fcn.004cb120
cmp edi, eax
jne 0x4f95c2
mov ecx, dword [esp + 0x20]
add ecx, 0x90
mov edx, dword [ecx]
mov dword [esp + 0x4c], edx
mov eax, dword [ecx + 4]
mov dword [esp + 0x50], eax
mov ecx, dword [ecx + 8]
mov dword [esp + 0x54], ecx
mov edx, dword [esp + 0x38]
mov eax, dword [0x7a3a28]
mov ecx, dword [eax + 0x8c]
push edx
call fcn.0059b6d0
mov edi, eax
test edi, edi
je 0x4f95c2
mov ecx, esi
call fcn.004cb120
test eax, eax
je 0x4f95c2
mov eax, dword [esi + 0xe8]
test eax, eax
je 0x4f95c2
mov ecx, esi
call fcn.004cb120
mov edx, dword [esp + 0x58]
mov ecx, dword [eax + 0x120]
add eax, 0x11c
push edx
sub esp, 8
mov dword [esp + 0x28], ecx
add edi, 0x20
mov ecx, esp
mov dword [esp + 0x2c], esp
push edi
call fcn.005e5b00
mov ecx, esi
call fcn.004eb3a0
fstp dword [esp + 0x78]
test ebp, ebp
movzx eax, byte [esp + 0x6c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x68], eax
je 0x4f9772
or eax, 0x80000000
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4f9782
or dword [esp + 0x68], 0x40000000
xor ebp, ebp
cmp eax, ebx
mov eax, dword [esp + 0x64]
mov edi, 0xffff
mov dword [esp + 0x24], ebx
jne 0x4f9823
push ebp
push ebp
lea ecx, [esp + 0x20]
push ecx
push ebx
lea edx, [esp + 0x84]
push edx
push ebx
test eax, eax
lea eax, [esp + 0x80]
push eax
push ebx
lea ecx, [esp + 0x9c]
push ecx
push 2
lea edx, [esp + 0x84]
push edx
push 2
lea eax, [esp + 0x40]
push eax
push 2
lea ecx, [esp + 0x90]
push ecx
push 3
lea edx, [esp + 0x88]
push edx
push ebx
lea eax, [esp + 0x8c]
push eax
push ebx
lea ecx, [esp + 0x90]
push ecx
push ebx
lea edx, [esp + 0x94]
push edx
push ebx
lea eax, [esp + 0x98]
push eax
push ebx
push edi
mov ecx, esi
push 0xf
je 0x4f9561
call fcn.004ccb00
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x48
test eax, eax
mov dword [esp + 0x6c], ebx
jne 0x4f9a7c
lea ecx, [esi + 0x90]
push ecx
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x30]
push eax
call fcn.00423bc0
fld dword [esp + 0x3c]
fmul dword [esp + 0x3c]
add esp, 0xc
fld dword [esp + 0x2c]
fmul dword [esp + 0x2c]
faddp st(1)
fld dword [esp + 0x28]
fmul dword [esp + 0x28]
faddp st(1)
fld dword [esp + 0x78]
fmul dword [esp + 0x78]
fcompp
fnstsw ax
test ah, 5
jp 0x4f9988
push ebx
mov edx, dword [esp + 0x7c]
push 0
push 0
mov eax, dword [esp + 0x64]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x2c]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push edx
push ebx
push eax
push ecx
lea edx, [esp + 0x88]
push edx
push 0xffff
mov ecx, esi
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
call fcn.004f8b60
cmp dword [esp + 0x58], 0x7f000000
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov ebp, ebx
mov edi, 0xfffe
mov dword [esp + 0x9c], ebx
push 0
je 0x4f993e
lea eax, [esp + 0x9c]
push eax
push ebx
lea ecx, [esp + 0xa8]
push ecx
push ebx
lea edx, [esp + 0x64]
push edx
push ebx
lea eax, [esp + 0xc0]
push eax
push 2
lea ecx, [esp + 0xc8]
push ecx
push 2
lea edx, [esp + 0x6c]
push edx
push ebx
lea eax, [esp + 0xb8]
push eax
push 3
push edi
push 0x11
jmp 0x4f9981
lea ecx, [esp + 0xa8]
push ecx
push 2
lea edx, [esp + 0x4c]
push edx
push ebx
lea eax, [esp + 0x98]
push eax
push 3
lea ecx, [esp + 0x64]
push ecx
push 3
lea edx, [esp + 0xcc]
push edx
push 2
lea eax, [esp + 0xb4]
push eax
push 2
lea ecx, [esp + 0x70]
push ecx
push 2
push 0xfffe
push 0x12
mov ecx, esi
call fcn.004cea20
push 0
push 0
push 0
push 0
push 0
push 0
push 0
cmp dword [esp + 0x74], 0x7f000000
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
je 0x4f99d1
push 0
push 0
push 0
push 0
lea edx, [esp + 0xb8]
push edx
push 3
push edi
push 0x13
jmp 0x4f99ef
lea eax, [esp + 0xcc]
push eax
push 2
lea ecx, [esp + 0xb4]
push ecx
push 2
lea edx, [esp + 0x70]
push edx
push 2
push edi
push 0x31
mov ecx, esi
call fcn.004cea20
test ebp, ebp
jne 0x4f99ff
mov edi, 0xfffe
push 0
push 0
lea eax, [esp + 0x20]
push eax
push ebx
lea ecx, [esp + 0x84]
push ecx
push ebx
lea edx, [esp + 0x80]
push edx
push ebx
lea eax, [esp + 0x9c]
push eax
push 2
lea ecx, [esp + 0x84]
push ecx
push 2
lea edx, [esp + 0x40]
push edx
push 2
lea eax, [esp + 0x90]
push eax
push 3
lea ecx, [esp + 0x88]
push ecx
push ebx
lea edx, [esp + 0x8c]
push edx
push ebx
lea eax, [esp + 0x90]
push eax
push ebx
lea ecx, [esp + 0x94]
push ecx
push ebx
lea edx, [esp + 0x98]
push edx
push ebx
push edi
push 0xf
mov ecx, esi
call fcn.004cea20
jmp 0x4f9d55
push 0
push 0
lea eax, [esp + 0x20]
push eax
push ebx
lea ecx, [esp + 0x84]
push ecx
push ebx
lea edx, [esp + 0x80]
push edx
push ebx
lea eax, [esp + 0x9c]
push eax
push 2
lea ecx, [esp + 0x84]
push ecx
push 2
lea edx, [esp + 0x40]
push edx
push 2
lea eax, [esp + 0x90]
push eax
push 3
lea ecx, [esp + 0x88]
push ecx
push ebx
lea edx, [esp + 0x8c]
push edx
push ebx
lea eax, [esp + 0x90]
push eax
push ebx
lea ecx, [esp + 0x94]
push ecx
push ebx
lea edx, [esp + 0x98]
push edx
push ebx
push 0xffff
push 0xf
mov ecx, esi
call fcn.004ccb00
push 0
push 0
push 0
push 0
push 0
push 0
push 0
cmp dword [esp + 0x74], 0x7f000000
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov dword [esp + 0xbc], 0
push 0
je 0x4f9bb9
push 0
push 0
push 0
push 0
lea eax, [esp + 0xb8]
push eax
push 3
push 0xfffe
push 0x13
mov ecx, esi
call fcn.004ccb00
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea ecx, [esp + 0x9c]
push ecx
push ebx
lea edx, [esp + 0xa8]
push edx
push ebx
lea eax, [esp + 0x64]
push eax
push ebx
lea ecx, [esp + 0xc0]
push ecx
push 2
lea edx, [esp + 0xc8]
push edx
push 2
lea eax, [esp + 0x6c]
push eax
push ebx
lea ecx, [esp + 0xb8]
push ecx
push 3
push 0xfffe
push 0x11
jmp 0x4f9c43
lea edx, [esp + 0xcc]
push edx
push 2
lea eax, [esp + 0xb4]
push eax
push 2
lea ecx, [esp + 0x70]
push ecx
push 2
push 0xfffe
push 0x31
mov ecx, esi
call fcn.004ccb00
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
lea edx, [esp + 0x94]
push edx
push 2
lea eax, [esp + 0xa8]
push eax
push 2
lea ecx, [esp + 0x4c]
push ecx
push ebx
lea edx, [esp + 0x98]
push edx
push 3
lea eax, [esp + 0x64]
push eax
push 3
lea ecx, [esp + 0xcc]
push ecx
push 2
lea edx, [esp + 0xb4]
push edx
push 2
lea eax, [esp + 0x70]
push eax
push 2
push 0xfffe
push 0x12
mov ecx, esi
call fcn.004ccb00
lea ecx, [esi + 0x90]
push ecx
lea edx, [esp + 0x50]
push edx
lea eax, [esp + 0x30]
push eax
call fcn.00423bc0
fld dword [esp + 0x3c]
fmul dword [esp + 0x3c]
add esp, 0xc
fld dword [esp + 0x2c]
fmul dword [esp + 0x2c]
faddp st(1)
fld dword [esp + 0x28]
fmul dword [esp + 0x28]
faddp st(1)
fst dword [esp + 0x64]
fld dword [esp + 0x78]
fmul dword [esp + 0x78]
fxch st(1)
fcompp
fnstsw ax
test ah, 0x41
jne 0x4f9d55
mov ecx, dword [esp + 0x6c]
push ecx
mov eax, dword [esp + 0x7c]
push 0
mov ecx, dword [esp + 0x1c]
push 0
lea edx, [esp + 0x34]
push edx
mov edx, dword [esp + 0x68]
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push eax
mov eax, dword [esp + 0x4c]
push ecx
push edx
push eax
lea ecx, [esp + 0x88]
push ecx
push 0xfffe
mov ecx, esi
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
call fcn.004f8a50
mov eax, dword [esi + 0xa88]
test eax, eax
je 0x4f9d55
fld dword [esp + 0x64]
fcomp dword [0x73edf0]
fnstsw ax
test ah, 0x41
jne 0x4f9d55
mov edx, dword [0x7a39fc]
mov edi, dword [edx + 4]
mov eax, dword [esi + 4]
push eax
mov ecx, edi
call fcn.005eda50
push eax
mov ecx, edi
call fcn.005ed8b0
mov ecx, eax
call fcn.006349c0
mov ebp, eax
test ebp, ebp
jl 0x4f9d55
mov ecx, edi
call fcn.005ed8b0
imul ebp, ebp, 0x88
push 0xa5ed
lea ecx, [eax + ebp + 0x24]
call fcn.006345e0
mov eax, dword [esp + 0x60]
test eax, eax
jne 0x4f9d73
mov eax, dword [esp + 0x58]
mov dword [esi + 0x524], eax
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 0x48
mov ecx, esi
call fcn.004cb120
mov ecx, dword [eax + 0x120]
add eax, 0x11c
mov dword [esi + 0x524], ecx
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x24
ret 0x48