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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x50
mov eax, dword [0x1009400c]
xor eax, esp
mov dword [esp + 0x4c], eax
push esi
push edi
mov edi, ecx
movss dword [esp + 0x1c], xmm1
mov esi, dword [edi + 0x1d8]
movss xmm1, dword [edi + 0x100]
movss xmm2, dword [edi + 0xfc]
movss dword [esp + 0x3c], xmm2
movss xmm3, dword [esi + 0x100]
movss xmm5, dword [esi + 0xfc]
movaps xmm0, xmm3
comiss xmm5, xmm2
subss xmm0, xmm1
movss dword [esp + 0xc], xmm5
movaps xmm6, xmm5
movss dword [esp + 0x30], xmm3
subss xmm6, xmm2
movss dword [esp + 0x2c], xmm1
movaps xmm4, xmm0
movss dword [esp + 0x38], xmm0
mulss xmm4, xmm0
movaps xmm0, xmm6
movss dword [esp + 0x34], xmm6
mulss xmm0, xmm6
addss xmm4, xmm0
movss dword [esp + 0x18], xmm4
jbe 0x10056a2c
movaps xmm4, xmm5
subss xmm4, xmm2
jmp 0x10056a33
movaps xmm4, xmm2
subss xmm4, xmm5
comiss xmm3, xmm1
movss dword [esp + 0x10], xmm4
jbe 0x10056a47
movaps xmm0, xmm3
subss xmm0, xmm1
jmp 0x10056a4e
movaps xmm0, xmm1
subss xmm0, xmm3
movss dword [esp + 8], xmm0
divss xmm0, xmm4
cvtps2pd xmm0, xmm0
call fcn.1007d9b0
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x1008e5e4]
cvtss2sd xmm0, xmm0
divsd xmm0, qword [0x1008e2e0]
cvtsd2ss xmm0, xmm0
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x10]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
movss xmm0, dword [esp + 8]
fld qword [esp + 0x10]
cvtps2pd xmm0, xmm0
movsd qword [esp + 0x10], xmm0
fld qword [esp + 0x10]
call fcn.1007d99a
movsd xmm3, qword [0x1008e2e0]
fstp qword [esp + 0x10]
movsd xmm0, qword [esp + 0x10]
cvtpd2ps xmm0, xmm0
movss xmm2, dword [esp + 0x1c]
mulss xmm0, dword [0x1008e5e4]
movss xmm1, dword [esp + 0x18]
cvtps2pd xmm0, xmm0
divsd xmm0, xmm3
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x10], xmm0
movaps xmm0, xmm2
mulss xmm0, xmm2
comiss xmm1, xmm0
movss dword [esp + 0x1c], xmm0
jb 0x10056ce8
movaps xmm0, xmm2
mulss xmm0, dword [0x1008e2c8]
mulss xmm0, xmm0
comiss xmm1, xmm0
jb 0x10056b23
movss xmm0, dword [0x1008e4c0]
mov dword [edi + 0x78], 0x3f63d70b
jmp 0x10056b5b
movaps xmm0, xmm2
mulss xmm0, dword [0x1008e178]
addss xmm0, xmm2
mulss xmm0, xmm0
comiss xmm1, xmm0
jb 0x10056b4c
movss xmm0, dword [0x1008e4b8]
mov dword [edi + 0x78], 0x3f30a3d7
jmp 0x10056b5b
movss xmm0, dword [0x1008e4b0]
mov dword [edi + 0x78], 0x3ecccccd
movss dword [esp + 8], xmm0
movss xmm0, dword [esp + 0x20]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm3
divsd xmm0, qword [0x1008e3e8]
movsd qword [esp + 0x40], xmm0
call fcn.1007dca0
movss xmm1, dword [esp + 8]
cvtps2pd xmm1, xmm1
mulsd xmm0, xmm1
movsd qword [esp + 0x20], xmm0
movsd xmm0, qword [esp + 0x40]
call fcn.1007de60
movss xmm1, dword [esp + 8]
movaps xmm3, xmm0
movss xmm2, dword [esp + 0x3c]
movss xmm4, dword [esp + 0xc]
comiss xmm4, xmm2
movss xmm0, dword [esp + 0x30]
cvtps2pd xmm1, xmm1
mulsd xmm3, xmm1
movss xmm1, dword [esp + 0x2c]
jbe 0x10056c5b
comiss xmm0, xmm1
jbe 0x10056c11
movsd xmm0, qword [esp + 0x20]
cvtpd2ps xmm0, xmm0
addss xmm0, xmm2
movss dword [edi + 0xfc], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm3
addss xmm0, xmm1
movss dword [edi + 0x100], xmm0
movss xmm0, dword [0x1008e5e4]
subss xmm0, dword [esp + 0x10]
jmp 0x10056cd2
comiss xmm1, xmm0
jbe 0x10056c5b
movsd xmm0, qword [esp + 0x20]
mov eax, 2
cvtpd2ps xmm0, xmm0
mov word [edi + 0x12], ax
addss xmm0, xmm2
movss dword [edi + 0xfc], xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm3
subss xmm1, xmm0
movss dword [edi + 0x100], xmm1
movss xmm1, dword [esp + 0x10]
movss dword [edi + 0x110], xmm1
jmp 0x10056dae
comiss xmm2, xmm4
jbe 0x10056cda
comiss xmm1, xmm0
jbe 0x10056c96
movsd xmm0, qword [esp + 0x20]
cvtpd2ps xmm0, xmm0
subss xmm2, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm3
subss xmm1, xmm0
movss xmm0, dword [0x1008e694]
subss xmm0, dword [esp + 0x10]
movss dword [edi + 0x100], xmm1
jmp 0x10056cca
comiss xmm0, xmm1
jbe 0x10056cda
movsd xmm0, qword [esp + 0x20]
cvtpd2ps xmm0, xmm0
subss xmm2, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm3
addss xmm0, xmm1
movss dword [edi + 0x100], xmm0
movss xmm0, dword [esp + 0x10]
addss xmm0, dword [0x1008e5e4]
movss dword [edi + 0xfc], xmm2
movss dword [edi + 0x110], xmm0
mov eax, 2
mov word [edi + 0x12], ax
jmp 0x10056dae
movss xmm0, dword [0x1008e750]
comiss xmm0, xmm1
jbe 0x10056d6a
movzx eax, word [esi + 0x12]
cmp eax, 0xf
jb 0x10056d07
cmp eax, 0x25
jbe 0x10056dae
mov eax, 2
lea esi, [edi + 0x174]
mov word [edi + 0x12], ax
lea eax, [edi + 0x108]
push esi
push eax
mov eax, 0x959ce0
call eax
lea eax, [esp + 0x48]
push eax
lea eax, [edi + 0xa8]
push esi
push eax
mov eax, 0x95a1e0
call eax
movss xmm0, dword [esp + 0x54]
add esp, 0x14
addss xmm0, dword [edi + 0xfc]
movss dword [edi + 0xfc], xmm0
movss xmm0, dword [esp + 0x44]
addss xmm0, dword [edi + 0x100]
movss dword [edi + 0x100], xmm0
jmp 0x10056dae
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov ecx, dword [0x10113a64]
add ecx, 0x320
cmp eax, ecx
ja 0x10056d8d
mov eax, 1
mov word [edi + 0x12], ax
jmp 0x10056dae
call esi
mov ecx, dword [0x10113a64]
add ecx, 0x2ee0
cmp eax, ecx
ja 0x10056da7
xor eax, eax
mov word [edi + 0x12], ax
jmp 0x10056dae
call esi
mov dword [0x10113a64], eax
movss xmm0, dword [esp + 0x18]
mov esi, 0x168
comiss xmm0, dword [0x1008e784]
jb 0x10056ee2
mov eax, dword [edi + 0x1d8]
movss xmm0, dword [eax + 0xfc]
comiss xmm0, dword [edi + 0xfc]
jbe 0x10056e0c
call fcn.100687d2
cdq
idiv esi
movss xmm0, dword [edi + 0xfc]
movss xmm2, dword [esp + 0x34]
addss xmm0, xmm2
movd xmm1, edx
cvtdq2ps xmm1, xmm1
addss xmm1, xmm0
movss dword [edi + 0xfc], xmm1
jmp 0x10056e12
movss xmm2, dword [esp + 0x34]
mov eax, dword [edi + 0x1d8]
movss xmm0, dword [edi + 0xfc]
comiss xmm0, dword [eax + 0xfc]
jbe 0x10056e54
addss xmm0, xmm2
movss dword [esp + 0xc], xmm0
call fcn.100687d2
cdq
idiv esi
movss xmm1, dword [esp + 0xc]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movss dword [edi + 0xfc], xmm1
mov eax, dword [edi + 0x1d8]
movss xmm0, dword [eax + 0x100]
comiss xmm0, dword [edi + 0x100]
jbe 0x10056e9a
call fcn.100687d2
cdq
idiv esi
movss xmm0, dword [edi + 0x100]
movss xmm2, dword [esp + 0x38]
addss xmm0, xmm2
movd xmm1, edx
cvtdq2ps xmm1, xmm1
addss xmm1, xmm0
movss dword [edi + 0x100], xmm1
jmp 0x10056ea0
movss xmm2, dword [esp + 0x38]
mov eax, dword [edi + 0x1d8]
movss xmm0, dword [edi + 0x100]
comiss xmm0, dword [eax + 0x100]
jbe 0x10056ee2
addss xmm0, xmm2
movss dword [esp + 0xc], xmm0
call fcn.100687d2
cdq
idiv esi
movss xmm1, dword [esp + 0xc]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
subss xmm1, xmm0
movss dword [edi + 0x100], xmm1
mov eax, dword [edi + 0x1d8]
mov eax, dword [eax + 0x104]
mov dword [edi + 0x104], eax
call fcn.100687d2
cdq
mov ecx, 0x64
idiv ecx
test edx, edx
jne 0x10056fbe
movss xmm0, dword [esp + 0x1c]
comiss xmm0, dword [esp + 0x18]
jbe 0x10056f5e
call fcn.100687d2
and eax, 0x8000003f
jns 0x10056f27
dec eax
or eax, 0xffffffc0
inc eax
add eax, 0x10
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1008e788]
movss dword [esp + 0xc], xmm0
call fcn.100687d2
cdq
idiv esi
movd xmm0, edx
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x110], xmm0
movss xmm0, dword [esp + 0xc]
jmp 0x10056f81
call fcn.100687d2
and eax, 0x8000003f
jns 0x10056f6f
dec eax
or eax, 0xffffffc0
inc eax
sub eax, 0xffffff80
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1008e788]
mov dword [edi + 0xa8], 0
movss dword [edi + 0xac], xmm0
call fcn.100687d2
and eax, 0x8000003f
jns 0x10056fa4
dec eax
or eax, 0xffffffc0
inc eax
sub eax, 0x20
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1008e15c]
movss dword [edi + 0xb0], xmm0
mov eax, dword [edi + 0x1d8]
movss xmm2, dword [edi + 0x104]
movss xmm1, dword [0x1008e220]
movss xmm0, dword [eax + 0x104]
addss xmm0, dword [0x1008e568]
comiss xmm0, xmm2
jbe 0x10056ffd
movss xmm0, dword [edi + 0xb0]
addss xmm0, xmm1
movss dword [edi + 0xb0], xmm0
movss xmm0, dword [eax + 0x104]
addss xmm0, dword [0x1008e604]
comiss xmm2, xmm0
jbe 0x10057026
movss xmm0, dword [edi + 0xb0]
subss xmm0, xmm1
movss dword [edi + 0xb0], xmm0
mov ecx, dword [esp + 0x54]
pop edi
pop esi
xor ecx, esp
call fcn.1006459b
mov esp, ebp
pop ebp
ret