Function at 0x42f630
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
movsd xmm0, qword [0x478110]
divsd xmm0, qword [ebp + 8]
push ebx
mov ebx, dword [0x48577c]
push esi
push ebx
mov byte [ebx + 0x1b1], 1
movsd qword [ebp - 0x10], xmm0
mulsd xmm0, qword [0x4780d8]
movsd qword [ebp - 0x18], xmm0
call fcn.0042fdc0
movsd xmm2, qword [ebx + 0x620]
add esp, 4
ucomisd xmm2, qword [0x478058]
fmul qword [0x478110]
lahf
fstp qword [ebp - 8]
test ah, 0x44
jp 0x42f6ab
push ebx
call fcn.0042fdc0
fmul qword [0x478110]
add esp, 4
fstp qword [ebp + 8]
movsd xmm2, qword [ebp + 8]
movsd qword [ebx + 0x620], xmm2
movsd xmm1, qword [ebp - 8]
movaps xmm0, xmm2
addsd xmm0, qword [ebp - 0x10]
movsd qword [ebp - 8], xmm1
addsd xmm0, qword [ebp - 0x18]
comisd xmm0, xmm1
jbe 0x42f6cd
movsd qword [ebp - 8], xmm2
mov ecx, dword [ebx + 0x5fc]
push edi
push 0
call fcn.00435760
mov eax, dword [ebx + 0x608]
lea esi, [ebx + 0x608]
or eax, dword [esi + 4]
xorps xmm0, xmm0
movlpd qword [ebp + 8], xmm0
jne 0x42f71b
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push esi
call edi
push 0x485750
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
jmp 0x42f756
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea eax, [ebp + 8]
push eax
call edi
mov ecx, dword [ebp + 8]
sub ecx, dword [esi]
mov edx, dword [ebp + 0xc]
sbb edx, dword [esi + 4]
call fcn.00460a40
mov edx, dword [0x485754]
mov ecx, dword [0x485750]
movsd qword [ebp + 8], xmm0
call fcn.00460a40
movsd xmm1, qword [ebp + 8]
divsd xmm1, xmm0
movsd xmm0, qword [ebp - 8]
addsd xmm0, qword [ebp - 0x10]
mulsd xmm1, qword [0x478110]
movsd qword [ebp - 8], xmm0
addsd xmm0, qword [0x4780f8]
comisd xmm0, xmm1
jb 0x42f885
nop
mov eax, dword [esi]
xorps xmm0, xmm0
or eax, dword [esi + 4]
movlpd qword [ebp + 8], xmm0
jne 0x42f7b0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
push esi
call edi
push 0x485750
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
jmp 0x42f7eb
lea eax, [ebp + 8]
push eax
call edi
mov ecx, dword [ebp + 8]
sub ecx, dword [esi]
mov edx, dword [ebp + 0xc]
sbb edx, dword [esi + 4]
mov dword [ebp + 8], ecx
mov dword [ebp + 0xc], edx
call fcn.00460a40
mov edx, dword [0x485754]
mov ecx, dword [0x485750]
movsd qword [ebp - 0x20], xmm0
call fcn.00460a40
movsd xmm1, qword [ebp - 0x20]
divsd xmm1, xmm0
mulsd xmm1, qword [0x478110]
movsd xmm0, qword [ebp - 8]
subsd xmm0, xmm1
cvttsd2si eax, xmm0
push eax
call fcn.0042fc80
mov eax, dword [esi]
add esp, 4
or eax, dword [esi + 4]
xorps xmm0, xmm0
movlpd qword [ebp + 8], xmm0
jne 0x42f839
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
push esi
call edi
push 0x485750
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
jmp 0x42f86e
lea eax, [ebp + 8]
push eax
call edi
mov ecx, dword [ebp + 8]
sub ecx, dword [esi]
mov edx, dword [ebp + 0xc]
sbb edx, dword [esi + 4]
call fcn.00460a40
mov edx, dword [0x485754]
mov ecx, dword [0x485750]
movsd qword [ebp + 8], xmm0
call fcn.00460a40
movsd xmm1, qword [ebp + 8]
divsd xmm1, xmm0
mulsd xmm1, qword [0x478110]
movsd xmm0, qword [ebp - 8]
comisd xmm0, xmm1
jae 0x42f780
push 1
push ebx
call fcn.00431500
mov eax, dword [esi]
add esp, 8
or eax, dword [esi + 4]
xorps xmm0, xmm0
movlpd qword [ebp + 8], xmm0
jne 0x42f8c0
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentThread]
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
push esi
call edi
push 0x485750
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
xorps xmm1, xmm1
jmp 0x42f8f5
lea eax, [ebp + 8]
push eax
call edi
mov ecx, dword [ebp + 8]
sub ecx, dword [esi]
mov edx, dword [ebp + 0xc]
sbb edx, dword [esi + 4]
call fcn.00460a40
mov edx, dword [0x485754]
mov ecx, dword [0x485750]
movsd qword [ebp + 8], xmm0
call fcn.00460a40
movsd xmm1, qword [ebp + 8]
divsd xmm1, xmm0
mulsd xmm1, qword [0x478110]
lea eax, [ebx + 0x5fc]
push eax
push ebx
movsd qword [ebp + 8], xmm1
call fcn.004318f0
movsd xmm3, qword [ebx + 0x620]
add esp, 8
movsd xmm1, qword [ebp + 8]
movaps xmm2, xmm3
addsd xmm2, qword [ebp - 0x10]
pop edi
movaps xmm0, xmm2
addsd xmm0, qword [ebp - 0x18]
comisd xmm1, xmm0
jae 0x42f93c
comisd xmm3, xmm1
jbe 0x42f93f
movaps xmm2, xmm1
movsd qword [ebx + 0x620], xmm2
pop esi
mov byte [ebx + 0x1b1], 0
pop ebx
mov esp, ebp
pop ebp
ret