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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xb4
push ebx
mov ebx, eax
mov eax, dword [ebx + 0xdc0]
mov ecx, dword [ebx + 0x4054]
push esi
mov esi, dword [ebx + 0x3e30]
fld qword [esi + eax*8 + 0x138]
mov dword [esp + 0x40], eax
fstp qword [esp + 0x6c]
push edi
fld qword [esi + eax*8 + 0x160]
mov eax, dword [ebx + 0x4050]
add eax, dword [ebx + 0x4048]
fstp qword [esp + 0x68]
push 0
adc ecx, dword [ebx + 0x404c]
add eax, dword [ebx + 0x4040]
push 8
adc ecx, dword [ebx + 0x4044]
mov dword [esp + 0x50], esi
push ecx
push eax
call fcn.004ecf70
cmp dword [esi + 4], 0
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], edx
mov eax, esi
je 0x563f0a
mov esi, dword [eax + 0x40]
mov ecx, 0x12
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x78]
cmp dword [esp + 0x44], ecx
je 0x563f0a
movsx edx, byte [ecx + 0x5d7d00]
mov eax, dword [esp + 0x44]
movsx ecx, byte [eax + 0x5d7d00]
push edx
push ecx
push 0x5d83b8
push 0
push ebx
call fcn.0055fe10
mov eax, dword [esp + 0x5c]
add esp, 0x14
mov edx, 1
cmp dword [esp + 0x44], edx
jne 0x5640c9
mov ecx, dword [ebx + 0x1900]
mov eax, dword [ecx + 4]
cmp eax, 2
je 0x563f33
cmp eax, edx
mov dword [esp + 0x58], 0
jne 0x563f37
mov dword [esp + 0x58], edx
mov edi, dword [ebx + 0x1950]
mov eax, dword [edi + 4]
cmp eax, 2
mov dword [esp + 0x50], eax
je 0x563f55
cmp eax, edx
mov dword [esp + 0x4c], 0
jne 0x563f59
mov dword [esp + 0x4c], edx
mov eax, dword [ebx + 0x18f4]
mov esi, dword [eax]
mov eax, esi
sub eax, dword [ecx]
cdq
mov ecx, eax
xor ecx, edx
mov eax, esi
sub eax, dword [edi]
mov esi, dword [esp + 0x48]
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
mov edx, dword [ebx + 0x1900]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x38], eax
fld dword [edx + 0x24]
fstp dword [esp + 0x34]
fld dword [edi + 0x24]
mov edi, 4
cmp dword [edx + 4], edi
fstp dword [esp + 0x44]
fld qword [0x600570]
jne 0x563fb7
fld dword [esp + 0x34]
fld qword [esi + 0xd0]
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x34]
cmp dword [esp + 0x50], edi
jne 0x563fcf
fld dword [esp + 0x44]
fld qword [esi + 0xd0]
fmul st(2)
fsubp st(1)
fstp dword [esp + 0x44]
cmp dword [esp + 0x58], 0
je 0x563ff5
cmp dword [esp + 0x4c], 0
je 0x563fef
fld dword [esp + 0x44]
fadd dword [esp + 0x34]
fmul st(1)
fadd qword [esi + 0xc8]
jmp 0x56401e
fld dword [esp + 0x44]
jmp 0x56401e
cmp dword [esp + 0x4c], 0
je 0x564002
fld dword [esp + 0x34]
jmp 0x56401e
fild dword [esp + 0x60]
add eax, ecx
fmul dword [esp + 0x44]
fild dword [esp + 0x38]
mov dword [esp + 0x38], eax
fmul dword [esp + 0x34]
faddp st(1)
fidiv dword [esp + 0x38]
mov eax, dword [ebx + 0x18f4]
fstp dword [esp + 0x34]
cmp dword [eax + 0x20], 0
je 0x56403a
fmul qword [esi + 0xd0]
fadd dword [esp + 0x34]
jmp 0x564046
fstp st(0)
fld dword [esp + 0x34]
fadd qword [esi + 0xd0]
mov edx, dword [ebx + 0x194c]
fstp dword [esp + 0x34]
mov ecx, dword [ebx + edx*4 + 0x194c]
fild dword [ecx + 0xcbc]
mov eax, dword [esi + 0x220]
fmul qword [eax]
fld dword [esp + 0x34]
fld st(0)
fmul qword [eax + 8]
fdivp st(2)
fxch st(1)
fst qword [esi + 0x198]
call fcn.004ecec0
mov edx, dword [ebx + 0x3e30]
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fstp qword [edx + 0x190]
mov dword [esi + 0x84], 0
fsub qword [0x5d81f8]
fdiv qword [0x6005b0]
fld qword [0x5d4fc8]
fxch st(1)
call fcn.005b62f0
fmul qword [str.333333]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [eax + 4], 0
fld qword [eax + 0x20]
fld qword [0x5d4fc8]
fmul st(1), st(0)
fxch st(1)
fmul qword [eax + 0x18]
fst qword [esp + 0x60]
je 0x564461
mov ecx, dword [esp + 0x58]
mov eax, dword [eax + 8]
test eax, eax
mov esi, dword [ebx + 4]
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x60], eax
je 0x5641c2
cmp esi, edx
jle 0x564201
mov edx, dword [ebx + 0x22c]
mov ecx, dword [ebx + 0x3e30]
sub ecx, dword [edx + 0x3e30]
mov eax, 0xe6c2b449
imul ecx
add edx, ecx
sar edx, 9
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp esi, 1
mov dword [esp + 0x4c], 1
jle 0x564201
mov ecx, dword [esp + 0x4c]
lea eax, [ecx + edi]
cdq
idiv esi
mov edx, dword [ebx + edx*4 + 0x22c]
cmp dword [edx + 0x430], 0
mov eax, dword [edx + 0x3e30]
fld qword [eax + 0x198]
je 0x5641b3
fld qword [eax + 0x190]
call fcn.004ecec0
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x56419e
fstp st(1)
call fcn.004ecef6
add dword [esp + 0x50], eax
mov ecx, dword [esp + 0x4c]
adc dword [esp + 0x54], edx
jmp 0x5641b5
fstp st(0)
call fcn.004ecef6
add dword [esp + 0x50], eax
mov ecx, dword [esp + 0x4c]
adc dword [esp + 0x54], edx
jmp 0x5641b5
fstp st(0)
add ecx, 1
cmp ecx, esi
mov dword [esp + 0x4c], ecx
jl 0x56414b
jmp 0x564201
mov eax, dword [ebx + 0x18f4]
mov eax, dword [eax + 0x18]
mov dword [esp + 0x4c], eax
cmp eax, esi
mov eax, dword [esp + 0x48]
jge 0x5641dd
fild dword [esp + 0x4c]
jmp 0x5641e8
lea ecx, [esi - 1]
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
fmul qword [eax + 0x18]
fdiv qword [eax + 0x10]
fild qword [esp + 0x58]
faddp st(1)
call fcn.004ecef6
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x54]
sbb ecx, dword [esp + 0x94]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
fild qword [esp + 0x38]
fsubr st(1)
fdivrp st(1)
fld qword [0x600570]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x5642bc
fstp st(1)
fstp st(1)
fdivr dword [esp + 0xa0]
mov edx, dword [ebx + 0x18f4]
mov eax, dword [edx + 0x18]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x4c], eax
sub eax, esi
add eax, 1
mov dword [esp + 0x38], eax
fstp dword [esp + 0x34]
fild dword [esp + 0x38]
fcomp qword [edi + 0x10]
fnstsw ax
fldz
test ah, 1
fld1
jne 0x5642e1
fxch st(1)
fcom qword [edi + 0x98]
fnstsw ax
test ah, 5
jp 0x5642e5
fild dword [esp + 0x4c]
fidiv dword [edi + 0xe0]
fmul qword [0x600590]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x5642d2
fstp st(0)
fstp st(1)
fild qword [esp + 0x58]
fdiv qword [edi + 0x98]
fxch st(1)
call fcn.005b62f0
fmul dword [esp + 0x34]
fstp dword [esp + 0x34]
jmp 0x5642e9
fstp st(0)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x56423c
fstp st(0)
jmp 0x56423e
fstp st(1)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x56429f
fstp st(0)
jmp 0x5642a1
fstp st(1)
jmp 0x5642e7
fstp st(0)
fstp st(0)
cmp dword [esp + 0x60], 0
je 0x56442c
fld qword [edi + 0x78]
sub esp, 8
fadd qword [edi + 0x70]
lea esi, [esp + 0x80]
fstp qword [esp + 0x68]
fld dword [esp + 0x3c]
fstp qword [esp]
call fcn.00562940
fsubr qword [esp + 0x68]
add esp, 8
fld qword [esp + 0x98]
fld st(0)
fdiv qword [edi + 0x60]
fld qword [0x5d4fc8]
fsub st(1)
fld dword [esp + 0x34]
fld st(0)
fmulp st(2)
fxch st(1)
fst qword [esp + 0x38]
fld st(2)
fadd qword [0x5cfc10]
fld dword [esp + 0xa0]
fcom st(2)
fnstsw ax
test ah, 5
jnp 0x56437e
fstp st(2)
fxch st(1)
fst qword [esp + 0x38]
fxch st(1)
fld qword [0x5cfbe8]
fcomp st(4)
fnstsw ax
fstp st(3)
test ah, 0x41
jne 0x564382
fstp st(0)
fld qword [esp + 0x68]
fld st(0)
fst qword [esp + 0x38]
jmp 0x564388
fstp st(0)
jmp 0x56435f
fld qword [esp + 0x68]
fxch st(1)
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x564399
fstp st(0)
fld st(0)
fst qword [esp + 0x38]
fxch st(4)
fdivrp st(3)
fxch st(2)
fstp qword [esp + 0x50]
jmp 0x5643a7
fxch st(1)
fld qword [esp + 0x50]
fcomp st(4)
fnstsw ax
test ah, 0x41
jne 0x5643f8
fcom st(2)
fnstsw ax
fstp st(2)
test ah, 5
jp 0x5643fa
fstp st(0)
fstp st(1)
fmul qword [0x5d83b0]
sub esp, 8
lea esi, [esp + 0x80]
fstp dword [esp + 0x3c]
fld dword [esp + 0x3c]
fstp qword [esp]
call fcn.00562940
fsubr qword [esp + 0x68]
add esp, 8
fld qword [esp + 0x38]
fld dword [esp + 0x34]
fld qword [esp + 0x68]
jmp 0x5643a5
fstp st(2)
fldz
fcomp st(3)
fnstsw ax
fstp st(2)
test ah, 0x41
jne 0x564414
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x564416
jmp 0x5643c3
fstp st(1)
push ebx
fstp st(0)
push 0x5865b0
call fcn.00588ce0
add esp, 8
mov dword [edi + 0x84], eax
fld dword [esp + 0x34]
fld qword [esp + 0x70]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x564444
fstp st(1)
jmp 0x56470d
fstp st(0)
fld qword [esp + 0x68]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x56445a
fstp st(1)
jmp 0x56470d
fstp st(0)
jmp 0x56470d
fstp st(0)
push ebx
fstp st(0)
push 0x5865b0
fld1
fstp qword [esp + 0x70]
call fcn.00588ce0
mov ecx, dword [esp + 0x50]
fld qword [ecx + 0xb0]
mov dword [esp + 0x40], eax
fld qword [0x600570]
mov edx, dword [ecx + 0x28]
fmul st(1), st(0)
mov dword [ecx + 0x84], eax
fild dword [esp + 0x40]
mov dword [esp + 0x90], eax
xor eax, eax
add esp, 8
faddp st(2)
mov dword [esp + 0x84], eax
fxch st(1)
mov dword [esp + 0xa8], eax
mov dword [esp + 0xb0], eax
fst qword [ecx + 0xb0]
mov eax, dword [esp + 0x44]
fld qword [ecx + 0xb8]
mov dword [esp + 0xac], edx
fmulp st(2)
sub esp, 8
fxch st(1)
mov dword [esp + 0x80], eax
lea eax, [esp + 0x80]
fadd qword [0x5cfc10]
fst qword [ecx + 0xb8]
cmp dword [ebx + 0x1bc], 1
fdivp st(1)
mov edx, dword [ebx + 0x18f4]
mov edx, dword [edx + 0x18]
fstp dword [esp + 0xbc]
fld1
fstp dword [esp + 0x88]
jne 0x564581
fld qword [ecx + 0xc0]
fstp qword [esp]
push eax
call fcn.005635f0
fstp dword [esp + 0x40]
mov edi, dword [esp + 0x54]
add esp, 0xc
fld qword [esp + 0x68]
mov esi, dword [esp + 0x44]
cmp esi, 2
jne 0x564641
cmp dword [ebx + 0x50], 1
jle 0x564641
cmp dword [edi + 0x118], esi
je 0x564641
fstp st(0)
sub esp, 8
fld qword [edi + 0x120]
fdiv qword [edi + 0x128]
fstp qword [esp]
call fcn.00562910
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
jmp 0x5646e2
fld qword [ecx + 0xa0]
mov esi, edx
fdiv qword [ecx + 0x90]
sub esi, dword [ebx + 4]
add esi, 1
mov dword [esp + 0x40], esi
fstp qword [esp]
push eax
call fcn.005635f0
fstp dword [esp + 0x40]
fild dword [esp + 0x44]
mov edi, dword [esp + 0x54]
add esp, 0xc
fmul qword [edi + 0x18]
fdiv qword [edi + 0x10]
fst qword [esp + 0x70]
fldz
fcompp
fnstsw ax
test ah, 5
jp 0x564534
mov eax, 0x51eb851f
imul esi
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
call fcn.005b6d70
fld1
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x5645f9
fstp st(1)
fld st(0)
jmp 0x5645fb
fxch st(1)
fld qword [0x5d4fc8]
sub esp, 0x18
fstp qword [esp + 0x10]
fld qword [0x600570]
fstp qword [esp + 8]
fild qword [esp + 0x70]
fsub qword [esp + 0x88]
fxch st(1)
fmul qword [esp + 0x78]
fdivp st(1)
faddp st(1)
fstp qword [esp]
call fcn.005599d0
fld dword [esp + 0x4c]
add esp, 0x18
fmul st(1)
fstp dword [esp + 0x34]
jmp 0x564538
mov ecx, dword [ebx + 0x4e0]
test ecx, ecx
jle 0x5646c6
fld qword [edi + esi*8 + 0xf0]
fdiv qword [edi + 0x188]
fld qword [edi + 0x188]
fmul qword [edi + esi*8 + 0xf0]
fld qword [0x5cfc08]
fcomp st(3)
fnstsw ax
test ah, 5
jp 0x564685
cmp ecx, 3
jle 0x564685
fstp st(2)
fld qword [edi + 0x188]
fmulp st(2)
jmp 0x56469c
fld qword [0x600548]
fcomp st(3)
fnstsw ax
fstp st(2)
test ah, 0x41
jne 0x56469c
fdiv qword [edi + 0x188]
fld dword [esp + 0x34]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x5646b3
fstp st(0)
fstp st(1)
fstp dword [esp + 0x34]
jmp 0x5646f3
fstp st(1)
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x5646ab
fstp st(0)
fstp dword [esp + 0x34]
jmp 0x5646f3
cmp dword [ebx + 0x1bc], 1
fstp st(0)
jne 0x5646f3
fld dword [ebx + 0x1d4]
sub esp, 8
fstp qword [esp]
call fcn.00562910
fld dword [ebx + 0x1e8]
add esp, 8
fabs
fdivp st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
sub esp, 8
mov eax, esi
fstp qword [esp]
mov esi, ebx
call fcn.00563b70
mov edi, dword [esp + 0x50]
add esp, 8
mov edx, dword [esp + 0x44]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fld st(0)
fst qword [edi + 0xe8]
fstp qword [edi + edx*8 + 0xf0]
mov eax, dword [edi + 4]
test eax, eax
je 0x564735
cmp dword [edi + 8], 0
je 0x564747
mov ecx, dword [ebx + 0x18f4]
cmp dword [ecx + 0x18], 0
jne 0x564747
fst qword [edi + 0xf0]
test eax, eax
je 0x564772
cmp dword [edi + 8], 0
je 0x564772
sub esp, 8
lea esi, [esp + 0x80]
fstp qword [esp]
call fcn.00562940
fstp qword [edi + 0x198]
fld dword [esp + 0x3c]
add esp, 8
jmp 0x56479a
mov eax, dword [ebx + 0xdc0]
fild dword [edi + 0x84]
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x80]
fmul qword [eax + edx*8]
lea eax, [eax + edx*8]
fld st(1)
fmul qword [eax + 8]
fdivp st(1)
fstp qword [edi + 0x198]
fld qword [edi + 0x198]
call fcn.004ecec0
mov ecx, dword [ebx + 0x3e30]
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
pop edi
pop esi
pop ebx
fstp qword [ecx + 0x190]
mov esp, ebp
pop ebp
ret