Function at 0x575fb2
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x11c
push ebx
mov ebx, ecx
push esi
mov esi, dword [ebx + 0xa4]
cmp esi, 0xffffffff
jne 0x575fe3
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [ebx + 0xa4], eax
mov dword [ebx + 0xa8], eax
jmp 0x5761be
push edi
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [ebx + 0xa4], eax
sub eax, esi
test eax, eax
mov dword [ebp + 0x74], eax
fild dword [ebp + 0x74]
lea ecx, [ebx + 0xac]
jge 0x576008
fadd dword [0x64fe80]
fadd dword [ecx]
mov edx, dword [ebx + 0xb4]
fst dword [ecx]
xor ecx, ecx
fdiv dword [ebx + 0x9c]
inc ecx
cmp edx, ecx
fmul dword [0x64fc90]
jle 0x576053
mov esi, dword [ebx + 0xb0]
lea edi, [esi + 0x6c]
fild dword [edi - 0x38]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x576047
fild dword [edi]
fld st(1)
fcompp
fnstsw ax
test ah, 0x41
jnp 0x576075
inc ecx
add edi, 0x38
cmp ecx, dword [ebx + 0xb4]
jl 0x57602e
or dword [ebx + 0xa4], 0xffffffff
fstp st(0)
test edx, edx
fld1
fstp dword [ebp + 0x70]
mov byte [ebx + 0xa0], 0
lea ecx, [edx - 1]
je 0x5761bd
jmp 0x576097
mov eax, ecx
imul eax, eax, 0x38
add eax, esi
mov edx, dword [eax - 4]
mov eax, dword [eax + 0x34]
mov dword [ebp + 0x74], edx
sub eax, edx
fild dword [ebp + 0x74]
mov dword [ebp + 0x74], eax
fsubr st(1)
fidiv dword [ebp + 0x74]
fstp dword [ebp + 0x70]
fstp st(0)
mov eax, dword [ebx + 0xb0]
imul ecx, ecx, 0x38
add ecx, eax
lea eax, [ecx - 0x38]
push eax
push ecx
lea eax, [ebp + 0x38]
push eax
mov dword [ebp + 0x74], ecx
call fcn.0040bce0
mov esi, eax
mov eax, dword [ebp + 0x74]
lea edi, [ebp + 0x64]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [ebp + 0x64]
fmul dword [ebp + 0x70]
fld dword [ebp + 0x68]
add eax, 0xffffffc8
fmul dword [ebp + 0x70]
lea esi, [ebp + 0x64]
fld dword [ebp + 0x6c]
lea edi, [ebp + 0x2c]
fmul dword [ebp + 0x70]
add esp, 8
fstp dword [ebp + 0x40]
fld st(1)
fadd dword [eax]
fstp dword [ebp + 0x64]
fadd dword [eax + 4]
fstp dword [ebp + 0x68]
fstp st(0)
fld dword [ebp + 0x40]
fadd dword [eax + 8]
mov eax, dword [ebp + 0x74]
fstp dword [ebp + 0x6c]
movsd dword es:[edi], dword [esi]
fld dword [ebp + 0x70]
movsd dword es:[edi], dword [esi]
fstp dword [esp]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax - 0x14]
mov dword [ebp + 0x44], ecx
mov ecx, dword [eax - 0x10]
mov dword [ebp + 0x48], ecx
mov ecx, dword [eax - 0xc]
mov dword [ebp + 0x4c], ecx
mov ecx, dword [eax - 8]
mov dword [ebp + 0x50], ecx
mov ecx, dword [eax + 0x24]
mov dword [ebp + 0x54], ecx
mov ecx, dword [eax + 0x28]
mov dword [ebp + 0x58], ecx
mov ecx, dword [eax + 0x2c]
mov dword [ebp + 0x5c], ecx
mov eax, dword [eax + 0x30]
mov dword [ebp + 0x60], eax
lea eax, [ebp + 0x54]
push eax
lea eax, [ebp + 0x44]
push eax
lea eax, [ebp + 0x1c]
push eax
call fcn.004f9881
lea eax, [ebp + 0x1c]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.004f8f79
lea eax, [ebp + 0x2c]
push eax
lea ecx, [ebp - 0x24]
call fcn.0057714f
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.00577826
add esp, 0xc
push 0x10
pop ecx
mov esi, eax
lea edi, [ebp - 0x24]
lea eax, [ebp - 0x24]
rep movsd dword es:[edi], dword [esi]
push eax
lea ecx, [ebx + 0x1e0]
call fcn.00577541
push 0x10
pop ecx
lea edi, [ebx + 0x220]
lea esi, [ebp - 0x24]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.0057585b
mov eax, dword [ebx + 0x250]
mov dword [ebx + 4], eax
mov eax, dword [ebx + 0x254]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x258]
mov dword [ebx + 0xc], eax
pop edi
pop esi
pop ebx
add ebp, 0x78
leave
ret