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

Disassembly:
sub esp, 0x40
push esi
mov esi, dword [ecx]
mov dword [esp + 4], ecx
test esi, esi
je 0x5785e1
fld dword [esp + 0x58]
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x577b8d
mov eax, dword [esi + 8]
fstp st(1)
fild dword [esi + 8]
test eax, eax
jge 0x577b83
fadd dword [0xa905c8]
fstp dword [esp + 0x58]
fld dword [esp + 0x58]
fxch st(1)
fld dword [esp + 0x5c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x577bb6
mov ecx, dword [esi + 0xc]
fstp st(0)
fild dword [esi + 0xc]
test ecx, ecx
jge 0x577bae
fadd dword [0xa905c8]
fstp dword [esp + 0x5c]
fld dword [esp + 0x5c]
fld dword [esp + 0x4c]
push edi
fld qword [0xa93158]
mov edi, Ordinal_2
cmp dword [esp + 0x70], edi
jne 0x577bde
fld st(3)
fmul st(1)
fadd st(2)
call fcn.00a2cb30
add eax, dword [esi + 0x14]
mov dword [esp + 0x70], eax
cmp dword [esp + 0x74], edi
jne 0x577bf8
fld st(2)
fmul st(1)
fadd dword [esp + 0x54]
call fcn.00a2cb30
add eax, dword [esi + 0x18]
mov dword [esp + 0x74], eax
fild dword [esi + 0x14]
fadd st(2)
fld st(4)
fmul st(2)
fadd st(1)
fld qword [0xa951b0]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x2c]
fild dword [esi + 0x18]
fadd dword [esp + 0x54]
fld st(5)
fmulp st(4)
fadd st(3), st(0)
fxch st(3)
fmulp st(1)
fstp dword [esp + 0x30]
fld dword [esp + 0x78]
fadd dword [esp + 0x80]
fstp dword [esp + 0x78]
fld dword [esp + 0x7c]
fadd dword [esp + 0x84]
fstp dword [esp + 0x7c]
fldz
fld dword [esp + 0x78]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x577c81
fld qword [0xa974f8]
fmul st(1)
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
call fcn.00a2cb30
mov edi, eax
and edi, 0x8000001f
jns 0x577c9b
dec edi
or edi, 0xffffffe0
inc edi
jmp 0x577c9b
fld st(0)
call fcn.00a2cb30
and eax, 0x8000001f
jns 0x577c94
dec eax
or eax, 0xffffffe0
inc eax
mov edi, 0x20
sub edi, eax
fldz
mov dword [esp + 0x80], edi
fcomp dword [esp + 0x7c]
push ebp
fnstsw ax
test ah, 0x41
jne 0x577ce1
fld dword [esp + 0x80]
fmul qword [0xa974f8]
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
call fcn.00a2cb30
mov ebp, eax
and ebp, 0x8000001f
jns 0x577d00
dec ebp
or ebp, 0xffffffe0
inc ebp
jmp 0x577d00
fld dword [esp + 0x80]
call fcn.00a2cb30
and eax, 0x8000001f
jns 0x577cf9
dec eax
or eax, 0xffffffe0
inc eax
mov ebp, 0x20
sub ebp, eax
push ebx
fld st(5)
call fcn.00a2cb30
mov ebx, eax
cmp ebx, edi
jge 0x577d15
mov dword [esp + 0x88], ebx
fld st(4)
call fcn.00a2cb30
mov edi, eax
cmp edi, ebp
jge 0x577d24
mov ebp, edi
mov eax, dword [esp + 0x90]
cmp eax, 4
je 0x577f90
test eax, eax
je 0x577f90
cmp eax, 3
je 0x577f90
mov ebx, dword [esp + 0x54]
fstp st(0)
fsub dword [ebx + 8]
mov esi, dword [ebx + 0x10]
fstp dword [esp + 0x80]
fsub dword [ebx + 0xc]
fstp dword [esp + 0x84]
fld dword [esp + 0x80]
fld st(0)
fld qword [0xa974e8]
fmul st(1), st(0)
fxch st(1)
call fcn.00a2cb30
fld dword [esp + 0x84]
fld st(0)
mov edi, eax
fmulp st(2)
fxch st(1)
call fcn.00a2cb30
test edi, edi
jge 0x577d94
xor edi, edi
test eax, eax
jge 0x577d9a
xor eax, eax
mov ecx, dword [0xcddb18]
lea edx, [ecx - 1]
cmp edi, edx
jle 0x577da9
mov edi, edx
mov edx, dword [0xcddb1c]
dec edx
cmp eax, edx
jle 0x577db6
mov eax, edx
test byte [ebx + 4], 1
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x90]
je 0x577dd9
cmp ebx, 1
je 0x577dd9
cmp ebx, 2
je 0x577dd9
cmp ebx, 7
jne 0x577e38
or edx, 0xffffffff
fstp st(1)
fstp st(0)
mov eax, dword [esp + 0x94]
fld dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0x7c]
push ebx
push ecx
push eax
push ecx
mov ecx, dword [esp + 0x84]
fstp dword [esp]
push ecx
fxch st(1)
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x7c]
sub esp, 8
fstp dword [esp + 4]
fxch st(1)
fstp dword [esp]
push edx
fld dword [esp + 0x84]
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp]
call fcn.00577720
pop ebx
pop ebp
pop edi
pop esi
add esp, 0x40
ret 0x44
cmp ebx, 0xa
je 0x577dd6
cmp ebx, 9
jne 0x577f66
mov edi, dword [esp + 0x10]
fstp st(4)
fstp st(2)
push esi
fstp st(0)
sub esp, 8
fxch st(1)
mov ecx, edi
fstp dword [esp + 4]
fstp dword [esp]
call fcn.00574dc0
fld dword [esp + 0x80]
push esi
fadd dword [esp + 0x68]
sub esp, 8
mov ecx, edi
mov dword [esp + 0x4c], eax
fstp dword [esp + 0x9c]
fld dword [esp + 0x90]
fstp dword [esp + 4]
fld dword [esp + 0x9c]
fstp dword [esp]
call fcn.00574dc0
fld dword [esp + 0x84]
push esi
fadd dword [esp + 0x6c]
sub esp, 8
mov ecx, edi
mov dword [esp + 0x50], eax
fstp dword [esp + 0x90]
fld dword [esp + 0x90]
fstp dword [esp + 4]
fld dword [esp + 0x8c]
fstp dword [esp]
call fcn.00574dc0
fld dword [esp + 0x84]
push esi
sub esp, 8
fstp dword [esp + 4]
mov ecx, edi
fld dword [esp + 0x9c]
mov dword [esp + 0x54], eax
fstp dword [esp]
call fcn.00574dc0
mov edx, dword [esp + 0x94]
fld dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x74]
push ebx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x84]
push eax
mov eax, dword [esp + 0x6c]
push ecx
push ecx
fstp dword [esp]
push edx
fld dword [esp + 0x80]
sub esp, 8
fstp dword [esp + 4]
lea ecx, [esp + 0x60]
fld dword [esp + 0x84]
fstp dword [esp]
push eax
fld dword [esp + 0x80]
push ecx
sub esp, 8
fstp dword [esp + 4]
mov ecx, edi
fld dword [esp + 0x88]
fstp dword [esp]
call fcn.005772d0
pop ebx
pop ebp
pop edi
pop esi
add esp, 0x40
ret 0x44
imul ecx, eax
fstp st(1)
fstp st(0)
add ecx, edi
shl ecx, 4
mov edx, dword [ecx + esi + 0xc]
cmp ebx, 0xc
jne 0x577ddd
and edx, 0xffffff
or edx, 0x90000000
jmp 0x577ddd
mov eax, dword [esp + 0x60]
fstp st(1)
mov edx, eax
fstp st(1)
and edx, 1
mov dword [esp + 0x30], edx
jne 0x577fa7
test al, 2
je 0x577ff3
fld st(3)
fld qword [0xa91da8]
fmul st(1), st(0)
fxch st(1)
call fcn.00a2cb30
fmul st(3)
mov dword [esp + 0x18], eax
call fcn.00a2cb30
and ebx, 0x800000ff
mov dword [esp + 0x3c], eax
jns 0x577fd7
dec ebx
or ebx, 0xffffff00
inc ebx
and edi, 0x800000ff
mov dword [esp + 0x28], ebx
jns 0x577feb
dec edi
or edi, 0xffffff00
inc edi
mov edx, dword [esp + 0x30]
mov dword [esp + 0x2c], edi
mov eax, dword [esi + 0x34]
fld dword [esp + 0x74]
mov edi, dword [esp + 0x10]
xor ebx, ebx
inc eax
mov dword [esp + 0x8c], ebx
test eax, eax
jle 0x578403
mov dword [esp + 0x1c], ebx
mov eax, dword [esi + 0x30]
test eax, eax
je 0x5783e8
test ebx, ebx
jl 0x5783e8
cmp ebx, dword [esi + 0x3c]
jge 0x5783e8
mov ecx, dword [esp + 0x1c]
add eax, ecx
cmp byte [eax + 0xc], 0
je 0x5783e8
test eax, eax
je 0x5783e8
mov ecx, dword [eax]
test ecx, ecx
je 0x5783e8
mov ebx, dword [ecx + 0x24]
test ebx, ebx
je 0x578504
fld st(4)
fldz
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x57807d
fstp st(5)
fldz
fst dword [esp + 0x20]
fst dword [esp + 0x88]
jmp 0x5780b5
mov eax, dword [esi + 8]
fild dword [esi + 8]
test eax, eax
jge 0x57808d
fadd dword [0xa905c8]
mov eax, dword [ecx + 8]
fdivp st(6)
fild dword [ecx + 8]
test eax, eax
jge 0x57809f
fadd dword [0xa905c8]
fmul st(6)
fstp dword [esp + 0x20]
fild dword [ecx + 0x14]
fmulp st(6)
fxch st(5)
fstp dword [esp + 0x88]
fldz
fld st(4)
fucomp st(6)
fnstsw ax
fstp st(5)
test ah, 0x44
jp 0x5780d0
fstp st(3)
fxch st(3)
fst dword [esp + 0x24]
fstp dword [esp + 0x14]
jmp 0x57810b
mov eax, dword [esi + 0xc]
fstp st(4)
fild dword [esi + 0xc]
test eax, eax
jge 0x5780e2
fadd dword [0xa905c8]
mov eax, dword [ecx + 0xc]
fdivp st(3)
fild dword [ecx + 0xc]
test eax, eax
jge 0x5780f4
fadd dword [0xa905c8]
fmul st(3)
fstp dword [esp + 0x24]
fild dword [ecx + 0x18]
fmulp st(3)
fxch st(2)
fstp dword [esp + 0x14]
fxch st(1)
fxch st(2)
fxch st(1)
fld dword [esp + 0x20]
test edx, edx
je 0x578128
fld dword [esp + 0x34]
fld dword [esp + 0x88]
faddp st(3)
fld st(1)
faddp st(3)
fsubrp st(2)
jmp 0x578131
fld dword [esp + 0x88]
faddp st(2)
mov esi, dword [esp + 0x60]
fxch st(1)
and esi, 2
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
je 0x578156
fld dword [esp + 0x38]
fld dword [esp + 0x14]
fadd dword [esp + 0x5c]
fadd st(2)
fsubp st(1)
jmp 0x57815e
fld dword [esp + 0x14]
fadd dword [esp + 0x5c]
mov ecx, dword [esp + 0x78]
fstp dword [esp + 0x24]
mov eax, dword [esp + 0x7c]
fxch st(2)
lea edi, [ebx + 4]
fst dword [edi + 0x28]
mov dword [edi + 0x2c], ecx
fxch st(3)
mov dword [edi + 0x30], eax
fst dword [esp + 0x88]
fld dword [esp + 0x84]
fst dword [esp + 0x14]
test edx, edx
je 0x57820c
cmp dword [esp + 0x18], 0
jle 0x57820c
cmp dword [esp + 0x28], 0
mov ebp, dword [esp + 0x8c]
mov ecx, dword [esp + 0x18]
mov eax, ebp
cdq
jle 0x5781e9
inc ecx
idiv ecx
lea eax, [ecx - 1]
cmp edx, eax
je 0x578213
sub ecx, edx
dec ecx
shl ecx, 8
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
fiadd dword [esp + 0x28]
fstp dword [esp + 0x88]
jmp 0x578215
idiv ecx
sub ecx, edx
dec ecx
shl ecx, 8
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
faddp st(2)
fxch st(1)
fstp dword [esp + 0x88]
jmp 0x578215
mov ebp, dword [esp + 0x8c]
fstp st(1)
test esi, esi
je 0x57826b
mov ecx, dword [esp + 0x3c]
test ecx, ecx
jle 0x57826b
cmp dword [esp + 0x2c], 0
mov eax, ebp
cdq
jle 0x578255
inc ecx
idiv ecx
lea eax, [ecx - 1]
cmp edx, eax
je 0x57826b
sub ecx, edx
dec ecx
shl ecx, 8
mov dword [esp + 0x14], ecx
fiadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fiadd dword [esp + 0x2c]
fstp dword [esp + 0x14]
jmp 0x57826d
idiv ecx
sub ecx, edx
dec ecx
shl ecx, 8
mov dword [esp + 0x14], ecx
fiadd dword [esp + 0x14]
fstp dword [esp + 0x14]
jmp 0x57826d
fstp st(0)
fldz
fld dword [esp + 0x88]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x5782a9
fmul qword [0xa974f8]
fstp dword [esp + 0x88]
fld dword [esp + 0x88]
call fcn.00a2cb30
mov esi, eax
and esi, 0x8000001f
jns 0x5782c1
dec esi
or esi, 0xffffffe0
inc esi
jmp 0x5782c1
call fcn.00a2cb30
and eax, 0x8000001f
jns 0x5782ba
dec eax
or eax, 0xffffffe0
inc eax
mov esi, 0x20
sub esi, eax
fld dword [esp + 0x14]
mov dword [esp + 0x88], esi
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x5782fb
fmul qword [0xa974f8]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
call fcn.00a2cb30
mov ebp, eax
and ebp, 0x8000001f
jns 0x578313
dec ebp
or ebp, 0xffffffe0
inc ebp
jmp 0x578313
call fcn.00a2cb30
and eax, 0x8000001f
jns 0x57830c
dec eax
or eax, 0xffffffe0
inc eax
mov ebp, 0x20
sub ebp, eax
fld st(0)
call fcn.00a2cb30
cmp eax, esi
jge 0x578327
mov esi, eax
mov dword [esp + 0x88], esi
fld st(1)
call fcn.00a2cb30
cmp eax, ebp
jge 0x578334
mov ebp, eax
mov ecx, dword [ebx]
test ecx, ecx
je 0x578367
mov eax, dword [ecx + 0x34]
add eax, 1
je 0x578367
mov eax, dword [ecx + 0x30]
test eax, eax
je 0x578367
cmp dword [ecx + 0x3c], 0
jle 0x578367
cmp byte [eax + 0xc], 0
je 0x578367
mov eax, dword [eax]
test eax, eax
je 0x578367
mov eax, dword [eax + 0x24]
test eax, eax
je 0x578367
add eax, 4
jmp 0x578369
mov eax, edi
mov ecx, dword [esp + 0x7c]
fxch st(2)
mov edx, dword [esp + 0x78]
push ebp
push esi
push ecx
push edx
mov edx, dword [esp + 0x7c]
push ecx
mov ecx, dword [esp + 0x84]
fstp dword [esp]
push ecx
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x70]
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp]
push ecx
fld dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
sub esp, 8
fstp dword [esp + 4]
fld dword [esp + 0x50]
fstp dword [esp]
push eax
push edx
call fcn.00576880
fld dword [esp + 0x58]
fld dword [esp + 0x64]
mov edi, dword [esp + 0x10]
fld dword [esp + 0x68]
mov edx, dword [esp + 0x30]
fld dword [esp + 0x74]
mov ebx, dword [esp + 0x8c]
fld dword [esp + 0x80]
fxch st(3)
fxch st(4)
fxch st(2)
fxch st(3)
fxch st(1)
mov esi, dword [edi]
mov eax, dword [esi + 0x34]
add dword [esp + 0x1c], 0x10
inc ebx
inc eax
cmp ebx, eax
mov dword [esp + 0x8c], ebx
jl 0x578014
mov ecx, dword [edi]
fstp st(1)
mov edx, dword [ecx + 0x34]
add edx, 1
jne 0x5785d6
mov eax, dword [esp + 0x78]
fst dword [edi + 0x2c]
mov ecx, dword [esp + 0x7c]
mov esi, dword [esp + 0x94]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], ecx
mov eax, dword [edi]
test esi, esi
je 0x578510
mov edi, dword [eax + 0x24]
mov ecx, dword [edi]
test ecx, ecx
je 0x578469
mov edx, dword [ecx + 0x34]
add edx, 1
je 0x578469
mov edx, dword [ecx + 0x30]
test edx, edx
je 0x578469
cmp dword [ecx + 0x3c], 0
jle 0x578469
cmp byte [edx + 0xc], 0
je 0x578469
mov edx, dword [edx]
test edx, edx
je 0x578469
mov edx, dword [edx + 0x24]
lea ecx, [edx + 4]
test edx, edx
jne 0x57846c
lea ecx, [edi + 4]
mov edx, dword [esp + 0x88]
push ebp
push edx
mov edx, dword [esp + 0x84]
push edx
mov edx, dword [esp + 0x84]
push edx
mov edx, dword [esp + 0x80]
push ecx
fstp dword [esp]
push edx
mov edx, dword [esp + 0x84]
fxch st(1)
push edx
mov edx, dword [esp + 0x7c]
sub esp, 8
fstp dword [esp + 4]
fxch st(1)
fstp dword [esp]
push edx
fild dword [eax + 0x18]
sub esp, 8
fadd dword [esp + 0x8c]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fstp dword [esp + 4]
fiadd dword [eax + 0x14]
mov eax, dword [esp + 0x84]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fstp dword [esp]
push ecx
mov ecx, dword [esp + 0xc4]
push eax
push esi
push ecx
mov ecx, dword [esp + 0x50]
call fcn.00576ed0
pop ebx
pop ebp
pop edi
pop esi
add esp, 0x40
ret 0x44
mov ebx, dword [esp + 0x8c]
jmp 0x5783e8
mov esi, dword [eax + 0x24]
mov ecx, dword [esi]
test ecx, ecx
je 0x578544
mov edx, dword [ecx + 0x34]
add edx, 1
je 0x578544
mov edx, dword [ecx + 0x30]
test edx, edx
je 0x578544
cmp dword [ecx + 0x3c], 0
jle 0x578544
cmp byte [edx + 0xc], 0
je 0x578544
mov edx, dword [edx]
test edx, edx
je 0x578544
mov edx, dword [edx + 0x24]
lea ecx, [edx + 4]
test edx, edx
jne 0x578547
lea ecx, [esi + 4]
mov edx, dword [esp + 0x88]
push ebp
push edx
mov edx, dword [esp + 0x84]
push edx
mov edx, dword [esp + 0x84]
push edx
mov edx, dword [esp + 0x80]
push ecx
fstp dword [esp]
push edx
mov edx, dword [esp + 0x84]
fxch st(1)
push edx
mov edx, dword [esp + 0x7c]
sub esp, 8
fstp dword [esp + 4]
fxch st(1)
fstp dword [esp]
push edx
fild dword [eax + 0x18]
sub esp, 8
fadd dword [esp + 0x8c]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fstp dword [esp + 4]
fiadd dword [eax + 0x14]
mov eax, dword [esp + 0x84]
fstp dword [esp + 0xac]
fld dword [esp + 0xac]
fstp dword [esp]
push ecx
mov ecx, dword [esp + 0x44]
push eax
call fcn.00576880
pop ebx
pop ebp
pop edi
pop esi
add esp, 0x40
ret 0x44
fstp st(3)
pop ebx
fstp st(1)
pop ebp
fstp st(1)
pop edi
fstp st(0)
pop esi
add esp, 0x40
ret 0x44