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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xf4
mov eax, dword [0x1005103c]
xor eax, esp
mov dword [esp + 0xf0], eax
mov eax, dword [ebp + 8]
mov ecx, dword [0x10057e28]
push ebx
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0x14]
push esi
mov esi, dword [0x1004419c]
push edi
test eax, eax
je 0x4f03e3
call dword [eax + 0xac]
jmp 0x4f03e5
call esi
mov ebx, dword [0x10057e2c]
mov edi, eax
mov eax, dword [ebx + 0x98]
cmp eax, 1
je 0x4f040e
cmp eax, 2
jne 0x4f04a8
cmp dword [ebx + 0xbc], 0
je 0x4f04a8
mov eax, dword [ebx + 0xed4]
test eax, eax
je 0x4f04a8
push 4
add eax, 0x20020
push eax
call dword [0x10044040]
test eax, eax
jne 0x4f0499
mov eax, dword [0x10057e2c]
sub edi, dword [0x10057e70]
fld dword [eax + 0xecc]
mov ecx, dword [eax + 0xed4]
fsub qword [0x1004eb48]
add ecx, 0x20020
mov dword [esp + 0x40], edi
fild dword [esp + 0x40]
test edi, edi
jge 0x4f0463
fadd qword [0x1004eb40]
mov edx, dword [ecx]
fmulp st(1)
fild dword [ecx]
test edx, edx
jge 0x4f0473
fadd qword [0x1004eb40]
fnstcw word [esp + 0x1c]
movzx eax, word [esp + 0x1c]
faddp st(1)
or eax, 0xc00
mov dword [esp + 0x34], eax
fldcw word [esp + 0x34]
fistp qword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov dword [ecx], eax
fldcw word [esp + 0x1c]
call esi
mov ebx, dword [0x10057e2c]
mov dword [0x10057e70], eax
mov edi, eax
mov ecx, edi
sub ecx, dword [0x10057e6c]
cmp ecx, 0x3e8
jae 0x4f04c3
inc dword [0x10057e68]
jmp 0x4f0544
test ecx, ecx
jbe 0x4f04f8
mov eax, dword [0x10057e68]
imul eax, eax, 0x3e8
xor edx, edx
div ecx
mov dword [esp + 0x40], eax
fild dword [esp + 0x40]
test eax, eax
jge 0x4f04e8
fadd qword [0x1004eb40]
fadd qword [0x1004eb38]
call fcn.00531954
mov dword [0x10057e40], eax
mov eax, dword [0x10057e48]
mov dword [0x10057e6c], edi
mov dword [0x10057e68], 0
test eax, eax
je 0x4f0549
mov ecx, dword [eax]
lea edx, [esp + 0x60]
push edx
push eax
mov eax, dword [ecx + 0xa4]
call eax
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
push edi
mov dword [0x100562bc], ecx
mov dword [0x100562c0], edx
call fcn.004f0114
mov ebx, dword [0x10057e2c]
add esp, 4
mov eax, dword [0x10057e48]
mov esi, dword [esp + 0x3c]
cmp eax, esi
jne 0x4f0c01
cmp dword [0x100562bc], 0
jne 0x4f0588
mov ecx, dword [eax]
lea edx, [esp + 0x48]
push edx
push eax
mov eax, dword [ecx + 0xa4]
call eax
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
mov ebx, dword [0x10057e2c]
mov dword [0x100562bc], ecx
mov dword [0x100562c0], edx
cmp dword [0x100579fc], 0
je 0x4f05ad
mov eax, dword [0x10057e4c]
cmp eax, dword [ebx + 0xec]
jne 0x4f05ad
cmp dword [0x10057e54], 0
jne 0x4f05c4
cmp dword [ebx + 0x20], 0
je 0x4f05c4
call fcn.004efe14
mov ecx, dword [0x10057e2c]
mov edx, dword [ecx + 0xec]
mov dword [0x10057e4c], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0xc]
push esi
call ecx
test eax, eax
jl 0x4f0c0f
mov ecx, dword [0x100579fc]
test ecx, ecx
je 0x4f0c0f
cmp dword [0x100562bc], 0
je 0x4f0c0f
mov eax, dword [0x10057e2c]
cmp dword [eax + 0x18], 0
je 0x4f0c0f
xor ebx, ebx
mov byte [0x100562c4], 0
cmp dword [eax + 0x20], ebx
je 0x4f0a37
cmp dword [0x10057e54], ebx
je 0x4f0a37
mov eax, dword [0x10057e50]
mov edx, dword [eax]
push eax
mov eax, dword [edx + 0x10]
call eax
fldz
mov ecx, dword [esi]
fst dword [esp + 0xb0]
mov eax, dword [ecx + 0x94]
fst dword [esp + 0xac]
fst dword [esp + 0xa8]
lea edx, [esp + 0x78]
fst dword [esp + 0xa4]
push edx
fst dword [esp + 0xa0]
push 2
fst dword [esp + 0xa0]
push esi
fst dword [esp + 0xa0]
fst dword [esp + 0x9c]
fst dword [esp + 0x94]
fst dword [esp + 0x90]
fst dword [esp + 0x8c]
fstp dword [esp + 0x88]
fld1
fst dword [esp + 0xc0]
fst dword [esp + 0xac]
fst dword [esp + 0x98]
fstp dword [esp + 0x84]
call eax
mov ecx, dword [0x10057e2c]
mov esi, dword [ecx + 0x668]
lea edx, [esp + 0x60]
push edx
or esi, 0xffffff
call dword [0x10044070]
movzx eax, word [esp + 0x6a]
mov dword [esp + 0x34], eax
movzx eax, word [esp + 0x68]
fild dword [esp + 0x34]
fld qword [0x1004eb30]
cdq
fdiv st(1), st(0)
mov ecx, 0xc
idiv ecx
cmp word [esp + 0x6e], 0x2d
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
fld qword [0x1004eb28]
movzx edx, word [esp + 0x6c]
mov dword [esp + 0x34], edx
fdiv st(1), st(0)
fdivr st(3)
faddp st(1)
fld qword [0x1004eb20]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x3c]
fild dword [esp + 0x34]
fdiv st(2)
fld st(0)
fdivrp st(3)
fxch st(2)
faddp st(3)
fmul st(2), st(0)
fxch st(2)
fstp dword [esp + 0x40]
fmulp st(1)
fstp dword [esp + 0x44]
jae 0x4f074b
fld dword [esp + 0x44]
fadd qword [0x1004eb18]
fstp dword [esp + 0x44]
fld dword [0x100579f8]
mov eax, dword [0x10057e2c]
cmp dword [eax + 0x1c], 0
fld st(0)
fadd st(1)
fild dword [0x100562bc]
fsub st(1)
fstp dword [esp + 0x1c]
jne 0x4f0772
fstp dword [esp + 0x1c]
jmp 0x4f0774
fstp st(0)
fld dword [esp + 0x1c]
mov eax, dword [0x10057e50]
fstp dword [esp + 0x34]
push esi
fldz
lea edx, [esp + 0x38]
fst dword [esp + 0x3c]
push edx
fxch st(1)
lea edx, [esp + 0x28]
fst dword [esp + 0x28]
fstp dword [esp + 0x2c]
mov ecx, dword [eax]
push ecx
fstp dword [esp]
push edx
mov edx, dword [0x10057e54]
push 0
push 0
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
fld dword [esp + 0x1c]
fadd dword [0x100579f8]
mov eax, dword [0x10057e50]
fld dword [0x100579f0]
push 0x7f303030
fld st(0)
lea edx, [esp + 0x24]
fsubp st(2)
push edx
fld1
lea edx, [esp + 0x30]
fadd st(2), st(0)
fxch st(2)
fstp dword [esp + 0x28]
fldz
faddp st(2)
fxch st(1)
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp dword [esp + 0x2c]
fstp dword [esp + 0x30]
fld dword [0x100579f4]
fstp dword [esp + 0x34]
mov ecx, dword [eax]
fld dword [esp + 0x44]
push ecx
fchs
fstp dword [esp + 0x48]
fld dword [esp + 0x48]
fstp dword [esp]
push edx
mov edx, dword [0x10057e58]
push 0
push 0
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
fld dword [esp + 0x1c]
fadd dword [0x100579f8]
mov eax, dword [0x10057e50]
fld dword [0x100579f0]
push esi
fld st(0)
lea edx, [esp + 0x2c]
fsubp st(2)
push edx
fxch st(1)
fstp dword [esp + 0x30]
fldz
fstp dword [esp + 0x34]
fstp dword [esp + 0x28]
fld dword [0x100579f4]
fstp dword [esp + 0x2c]
mov ecx, dword [eax]
fld dword [esp + 0x44]
push ecx
fstp dword [esp]
lea edx, [esp + 0x2c]
push edx
mov edx, dword [0x10057e58]
push 0
push 0
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
fld dword [esp + 0x1c]
fadd dword [0x100579f8]
mov eax, dword [0x10057e50]
fld dword [0x100579f0]
push 0x7f303030
fld st(0)
lea edx, [esp + 0x2c]
fsubp st(2)
push edx
fxch st(1)
lea edx, [esp + 0x28]
fadd qword [0x1004eb48]
fstp dword [esp + 0x30]
fld dword [esp + 0x3c]
fstp dword [esp + 0x34]
fstp dword [esp + 0x28]
fld dword [0x100579f4]
fstp dword [esp + 0x2c]
mov ecx, dword [eax]
fld dword [esp + 0x48]
push ecx
fchs
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [esp]
push edx
mov edx, dword [0x10057e5c]
push 0
push 0
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
fld dword [esp + 0x1c]
fadd dword [0x100579f8]
mov eax, dword [0x10057e50]
fld dword [0x100579f0]
push esi
fld st(0)
lea edx, [esp + 0x2c]
fsubp st(2)
push edx
fxch st(1)
lea edx, [esp + 0x28]
fstp dword [esp + 0x30]
fldz
fstp dword [esp + 0x34]
fstp dword [esp + 0x28]
fld dword [0x100579f4]
fstp dword [esp + 0x2c]
mov ecx, dword [eax]
fld dword [esp + 0x3c]
push ecx
fstp dword [esp]
push edx
mov edx, dword [0x10057e5c]
push 0
push 0
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
fld dword [esp + 0x1c]
fadd dword [0x100579f8]
fld dword [0x100579f0]
fld st(0)
fsubp st(2)
fld qword [0x1004eb08]
fadd st(2), st(0)
fxch st(2)
fstp dword [esp + 0x28]
fldz
mov eax, dword [0x10057e50]
faddp st(2)
fxch st(1)
push 0x7f303030
lea edx, [esp + 0x2c]
fstp dword [esp + 0x30]
push edx
lea edx, [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [0x100579f4]
fstp dword [esp + 0x2c]
mov ecx, dword [eax]
fld dword [esp + 0x4c]
push ecx
fchs
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [esp]
push edx
mov edx, dword [0x10057e60]
push 0
push 0
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
fld dword [esp + 0x1c]
fadd dword [0x100579f8]
mov eax, dword [0x10057e50]
fld dword [0x100579f0]
push esi
fld st(0)
lea edx, [esp + 0x2c]
fsubp st(2)
push edx
fxch st(1)
lea edx, [esp + 0x28]
fstp dword [esp + 0x30]
fldz
fstp dword [esp + 0x34]
fstp dword [esp + 0x28]
fld dword [0x100579f4]
fstp dword [esp + 0x2c]
mov ecx, dword [eax]
fld dword [esp + 0x3c]
push ecx
fstp dword [esp]
push edx
mov edx, dword [0x10057e60]
push 0
push 0
push edx
push eax
mov eax, dword [ecx + 0x14]
call eax
fld dword [0x100579f8]
call fcn.00531954
mov ebx, eax
mov eax, dword [0x10057e50]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x1c]
push eax
call edx
mov ecx, dword [0x100579fc]
mov eax, dword [ecx]
push ecx
mov ecx, dword [eax + 0x14]
call ecx
mov eax, dword [0x10057e2c]
cmp dword [eax + 0xa0], 0
je 0x4f0a5d
mov dword [eax + 0xa0], 0
mov dword [0x10057e74], edi
sub edi, dword [0x10057e74]
mov esi, edi
cmp esi, 0x7d0
jae 0x4f0b1b
fld dword [eax + 0xed0]
lea edx, [eax + 0xedc]
push edx
sub esp, 8
fstp qword [esp]
lea eax, [esp + 0xc4]
push 0x1004e9e4
push eax
call fcn.004f19ca
add esp, 0x14
cmp esi, 0x3e8
jae 0x4f0ad6
mov edx, dword [0x10057e2c]
mov edx, dword [edx + 0x668]
mov eax, dword [0x100579fc]
mov ecx, dword [eax]
not edx
or edx, 0xff000000
push edx
push 5
push 0x100562b4
push 0xffffffffffffffff
lea edx, [esp + 0xc8]
push edx
push eax
mov eax, dword [ecx + 0x1c]
call eax
jmp 0x4f0b16
mov edx, 0x7d0
sub edx, esi
imul edx, edx, 0xff
mov ecx, dword [0x100579fc]
mov edi, dword [ecx]
mov eax, 0x10624dd3
mul edx
shr edx, 6
shl edx, 0x18
or edx, 0xffffff
push edx
push 5
push 0x100562b4
push 0xffffffffffffffff
lea eax, [esp + 0xc8]
push eax
push ecx
mov ecx, dword [edi + 0x1c]
call ecx
mov eax, dword [0x10057e2c]
mov edx, dword [0x100562b4]
mov ecx, 0xa
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
mov ecx, 0xc8
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], ecx
sub edx, dword [eax + 0x66c]
lea ecx, [ebx + ebx]
mov dword [esp + 0x48], edx
sub ecx, dword [eax + 0x66c]
mov edx, dword [0x100562c0]
add ecx, dword [0x100562b8]
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [0x100562bc]
mov dword [esp + 0x50], ecx
mov esi, dword [eax + 0x1c]
mov eax, dword [eax + 0x670]
mov ecx, dword [0x100579fc]
mov edx, dword [ecx]
push eax
neg esi
sbb esi, esi
and esi, 2
push esi
lea eax, [esp + 0x50]
push eax
push 0xffffffffffffffff
push 0x10057b18
push ecx
mov ecx, dword [edx + 0x1c]
call ecx
mov edx, dword [0x10057e2c]
mov eax, dword [edx + 0x66c]
push eax
push eax
lea eax, [esp + 0x50]
push eax
call dword [0x10044190]
mov edx, dword [0x10057e2c]
mov edx, dword [edx + 0x668]
mov eax, dword [0x100579fc]
mov ecx, dword [eax]
push edx
push esi
lea edx, [esp + 0x50]
push edx
push 0xffffffffffffffff
push 0x10057b18
push eax
mov eax, dword [ecx + 0x1c]
call eax
mov eax, dword [0x100579fc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x20]
push eax
call edx
mov byte [0x100562c4], 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xf0]
xor ecx, esp
call fcn.004f1720
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
mov ecx, dword [eax + 4]
push esi
mov dword [0x10057e48], esi
call ecx
mov ecx, dword [esp + 0xfc]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004f1720
mov esp, ebp
pop ebp
ret