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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x9c
movsx eax, word [ecx + 6]
test ax, ax
je 0x4f92be
test eax, eax
jle 0x4f96b0
cmp eax, dword [0x5b4f8c]
jg 0x4f96b0
sub eax, 1
imul eax, dword [0x5b4f90]
mov edx, dword [0x5b4f99]
mov ecx, dword [edx + eax]
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call fcn.004b93a0
sub esp, 4
cmp word [ebx + 0x5e], 0
je 0x4f959b
movzx eax, word [esp + 0xb0]
mov word [ebx + 0x275], ax
mov eax, dword [esp + 0xb0]
test eax, eax
jle 0x4f9783
mov eax, dword [0x5b5310]
cmp dword [esp + 0xb0], eax
jg 0x4f9783
mov eax, dword [esp + 0xb0]
mov edx, dword [0x5b531d]
sub eax, 1
imul eax, dword [0x5b5314]
mov edi, dword [edx + eax]
movsx eax, word [ebx + 4]
movsx esi, byte [edi + 0x25]
cmp esi, eax
je 0x4f959b
mov eax, dword [0x5b4644]
mov dword [ebx + 0x24e], eax
test esi, esi
je 0x4f933e
mov eax, 1
mov ecx, esi
shl eax, cl
or byte [ebx + 0xf], al
movsx ecx, word [ebx + 0x19]
movzx edx, word [edi + 0x14]
movzx eax, word [edi + 0x12]
mov dword [esp + 0x24], 0
mov dword [esp + 0x1c], ecx
movsx ecx, word [ebx + 0x17]
sar dx, 5
sar ax, 5
movsx edx, dx
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], ecx
movsx ecx, word [ebx + 0x15]
cwde
mov dword [esp + 0xc], edx
mov dword [esp + 0x14], ecx
movsx ecx, word [ebx + 0x13]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ecx
mov ecx, 0x5ba360
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00499d90
sub esp, 0x28
cmp eax, 9
jg 0x4f93b9
lea esi, [esi]
nop
mov dword [esp], esi
mov ecx, ebx
call fcn.004f8b80
sub esp, 4
test eax, eax
jne 0x4f93a8
movsx eax, word [esp + 0xb0]
mov ecx, ebx
mov dword [esp], eax
call fcn.004f66c0
movsx eax, word [ebx + 0x5e]
sub esp, 4
test eax, eax
jne 0x4f95b0
xor eax, eax
fld dword [ebx + 0x252]
fstp dword [esp + 0x4c]
fld dword [esp + 0x4c]
fadd dword [esp + 0xb4]
fstp dword [esp + 0x50]
fld dword [0x5aa438]
fld dword [esp + 0x50]
fcomi st(1)
fstp st(1)
jae 0x4f96c0
fstp dword [ebx + 0x252]
cmp word [ebx + 0x24c], 0
jne 0x4f959b
movsx ecx, word [ebx + 4]
test cx, cx
je 0x4f95f0
mov eax, 1
jmp 0x4f94f7
fld dword [0x5aa424]
fdiv dword [esp + 0x8c]
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
fld1
fcompi st(1)
ja 0x4f953a
fstp st(0)
jmp 0x4f9462
fstp st(0)
mov dword [esp + 0x84], 0xbf800000
fld dword [esp + 0xb4]
fmul dword [esp + 0x84]
fstp dword [esp + 0x54]
fld dword [0x5aa424]
fdivr dword [esp + 0x54]
fstp dword [esp + 0x58]
fld dword [ebx + eax*4 + 0xa4]
fstp dword [esp + 0x7c]
fld dword [esp + 0x58]
fadd dword [esp + 0x7c]
fstp dword [esp + 0x80]
fld dword [0x5aa414]
fld dword [esp + 0x80]
fcomi st(1)
ja 0x4f94c8
fstp st(1)
fldz
fcomi st(1)
jbe 0x4f94e0
fstp st(1)
jmp 0x4f94ca
fstp st(0)
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
jmp 0x4f94e8
fstp st(0)
lea esi, [esi]
fstp dword [ebx + eax*4 + 0xa4]
add eax, 1
cmp eax, 0xb
je 0x4f9550
movzx edx, word [ebx + eax*2 + 0x74]
test dx, dx
je 0x4f94ef
mov word [esp + 0x3a], dx
fild word [esp + 0x3a]
cmp byte [ebx + 0x10], 0
fstp dword [esp + 0x8c]
jne 0x4f9438
fld dword [0x5aa420]
fdiv dword [esp + 0x8c]
fstp dword [esp + 0x74]
fld dword [esp + 0x74]
fld1
fcompi st(1)
jbe 0x4f9460
fchs
fstp dword [esp + 0x84]
jmp 0x4f946d
lea eax, [ebx + 0xa8]
lea edx, [ebx + 0xd0]
lea esi, [esi]
fld dword [eax]
fstp dword [esp + 0x5c]
fld1
fld dword [esp + 0x5c]
fcompi st(1)
fstp st(0)
jae 0x4f9700
add eax, 4
cmp edx, eax
jne 0x4f9560
mov ecx, ebx
call fcn.004f6460
cmp word [ebx + 0x24c], 0
jne 0x4f959b
movsx ecx, word [ebx + 4]
test cx, cx
jne 0x4f9700
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov dword [esp], eax
mov ecx, 0x5ba360
call fcn.00499e90
xor edx, edx
mov ebp, eax
sub esp, 4
xor eax, eax
lea esi, [esi]
lea esi, [esi]
movsx ecx, word [ebx + eax*2 + 0x76]
add eax, 1
add edx, ecx
cmp ebp, edx
jl 0x4f93dc
cmp eax, 0xa
jne 0x4f95d0
jmp 0x4f93da
test esi, esi
je 0x4f959b
lea eax, [esi*4 - 4]
mov dword [esp + 0x3c], esi
lea ebp, [ebx + 0x76]
lea ecx, [ebx + eax + 0x206]
lea edx, [ebx + eax + 0xee]
mov eax, edx
mov esi, ecx
jmp 0x4f9666
fstp dword [esp + 0x88]
fld dword [eax]
fstp dword [esp + 0x64]
fld dword [0x5aa424]
fdivr dword [esp + 0x88]
fstp dword [esp + 0x68]
fld dword [esp + 0x64]
fsub dword [esp + 0x68]
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fldz
fcomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
fstp dword [eax]
add eax, 0x1c
add ebp, 2
cmp eax, esi
je 0x4f9748
movzx ecx, word [ebp]
test cx, cx
je 0x4f9658
mov word [esp + 0x3a], cx
fild word [esp + 0x3a]
fstp dword [esp + 0x60]
fld dword [0x5aa420]
fdiv dword [esp + 0x60]
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fld1
fcompi st(1)
fstp st(0)
fld dword [esp + 0xb4]
jbe 0x4f9620
fmul dword [esp + 0x78]
fstp dword [esp + 0x88]
jmp 0x4f9627
xor ecx, ecx
jmp 0x4f92ac
fstp st(0)
mov dword [esp], eax
mov ecx, ebx
movsx ebp, word [ebx]
mov dword [ebx + 0x252], 0
mov dword [esp + 4], esi
call fcn.004f9000
mov ecx, 0x5b5220
sub esp, 8
mov dword [esp], ebp
call fcn.004fb910
sub esp, 4
test eax, eax
je 0x4f940f
jmp 0x4f959b
movsx eax, byte [edi + 0x25]
cmp eax, ecx
je 0x4f959b
test ecx, ecx
jle 0x4f977f
cmp ecx, dword [0x5b508c]
jg 0x4f977f
sub ecx, 1
imul ecx, dword [0x5b5090]
mov eax, dword [0x5b5099]
mov ecx, dword [eax + ecx]
mov eax, dword [esp + 0xb0]
mov dword [esp], eax
call fcn.00409590
sub esp, 4
jmp 0x4f959b
mov eax, esi
mov esi, dword [esp + 0x3c]
nop
fld dword [edx]
fstp dword [esp + 0x70]
fld1
fld dword [esp + 0x70]
fcompi st(1)
fstp st(0)
jae 0x4f959b
add edx, 0x1c
cmp edx, eax
jne 0x4f9750
mov dword [esp], esi
mov ecx, ebx
call fcn.004f5f00
sub esp, 4
jmp 0x4f9584
xor ecx, ecx
jmp 0x4f972a
movzx eax, byte [0x25]
ud2