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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10
push ebx
push ebp
xor ebp, ebp
push esi
push edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x14], ebp
jmp 0x4fa908
push ebp
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x70c704], ebp
jne 0x4fa901
xor edi, edi
inc edi
cmp dword [0x70c700], ebp
mov dword [0x70c70c], edi
jne 0x4faaab
cmp dword [0x70c724], ebp
mov dword [0x70c704], edi
jne 0x4fa959
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.0053114a
pop ecx
call fcn.00531157
cdq
mov ecx, 0x36ee80
idiv ecx
mov eax, 0x2932e00
sub eax, edx
mov dword [0x70c724], eax
push 0x70c718
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
jne 0x4fa9c5
cmp dword [0x70c720], ebp
mov dword [0x70c718], ebp
mov dword [0x70c71c], ebp
jne 0x4faa34
cmp dword [0x70c728], ebp
jne 0x4faa34
mov dword [0x70c728], edi
push str.:9:TimeGetTime___initialization:_No_performance_counter_exists_
mov dword [0x70c704], ebp
mov dword [0x70c70c], ebp
mov dword [0x70c720], edi
call fcn.0042bd38
pop ecx
mov dword [0x70c70c], edi
mov dword [0x70c720], ebp
call fcn.004fa8e4
jmp 0x4fac3f
cmp dword [0x70c71c], ebp
jg 0x4fa9f9
jl 0x4fa9db
cmp dword [0x70c718], 0x3e8
jae 0x4fa9e7
mov dword [0x70c718], ebp
mov dword [0x70c71c], ebp
cmp dword [0x70c71c], ebp
jl 0x4faa34
jg 0x4fa9f9
cmp dword [0x70c718], ebp
jbe 0x4faa34
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x4faa34
cmp dword [0x70c72c], ebp
jne 0x4faa28
cmp dword [0x70c720], ebp
mov dword [0x70c72c], edi
jne 0x4faa28
push str.:8:QueryPerformanceCounter___FAILED_to_initialize_in_TimeGetTime___initialization_
jmp 0x4fa997
mov dword [0x70c718], ebp
mov dword [0x70c71c], ebp
mov esi, dword [sym.imp.WINMM.dll_timeBeginPeriod]
mov ebx, edi
push edi
jmp 0x4faa52
cmp ebx, 0xa
jae 0x4faa58
cmp dword [0x70c720], ebp
je 0x4fab20
inc ebx
push ebx
call esi
test eax, eax
jne 0x4faa3f
cmp dword [0x70c71c], ebp
jl 0x4faa85
jg 0x4faa6a
cmp dword [0x70c718], ebp
jbe 0x4faa85
push 0x70c710
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x4faa85
mov dword [0x70c718], ebp
mov dword [0x70c71c], ebp
push edi
call esi
mov dword [0x70c718], ebp
mov dword [0x70c71c], ebp
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x70c708], eax
mov dword [0x70c700], edi
mov dword [0x70c704], ebp
mov ebx, dword [0x70c71c]
cmp ebx, ebp
jl 0x4fac01
jg 0x4faac9
mov esi, dword [0x70c718]
cmp esi, ebp
jbe 0x4fac07
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x4fab5c
cmp dword [0x70c730], ebp
jne 0x4fab4a
cmp dword [0x70c720], ebp
mov dword [0x70c730], edi
jne 0x4fab0f
push str.:9:QueryPerformanceCounter___FAILED_______________________
mov dword [0x70c720], edi
mov dword [0x70c70c], ebp
call fcn.0042b70b
pop ecx
mov dword [0x70c720], ebp
mov dword [0x70c700], ebp
mov dword [0x70c70c], ebp
jmp 0x4fa9bb
push str._GetLastError_
push ebx
push str.:8:QueryPerformanceCounter___FAILED_to_set_timeGetTime___granularity:_timeBeginPeriod__d__failed:_trying_one_higher:__s
mov dword [0x70c720], edi
mov dword [0x70c70c], ebp
mov dword [0x70c704], ebp
call fcn.0042bd38
add esp, 0xc
jmp 0x4fa9af
xor esi, esi
xor ebx, ebx
mov dword [0x70c718], esi
mov dword [0x70c71c], ebx
jmp 0x4fab68
mov ebx, dword [0x70c71c]
mov esi, dword [0x70c718]
cmp ebx, ebp
jg 0x4fabc7
jl 0x4fab76
cmp esi, 0x3e8
jae 0x4fabc7
mov eax, esi
or eax, ebx
je 0x4fabc7
cmp dword [0x70c734], ebp
jne 0x4fabb7
cmp dword [0x70c720], ebp
mov dword [0x70c734], edi
jne 0x4fabb7
push esi
push str.:9:TimeGetTime___has_encountered_a_serious_exception:_the_performance_frequency_counter_has_a_resolution_of_only__d_milliseconds______This_is_too_low_to_be_of_any_use_
mov dword [0x70c720], edi
mov dword [0x70c70c], ebp
call fcn.0042b70b
pop ecx
pop ecx
mov dword [0x70c70c], edi
mov dword [0x70c720], ebp
xor esi, esi
xor ebx, ebx
mov dword [0x70c718], esi
mov dword [0x70c71c], ebx
mov edi, dword [esp + 0x18]
sub edi, dword [0x70c710]
mov eax, dword [esp + 0x1c]
sbb eax, dword [0x70c714]
push ebp
push 0x3e8
push ebx
push esi
mov dword [esp + 0x24], eax
call fcn.00549a60
push edx
push eax
mov eax, dword [esp + 0x1c]
push eax
push edi
call fcn.00549a60
mov dword [esp + 0x14], eax
xor ebp, ebp
jmp 0x4fac07
mov esi, dword [0x70c718]
or esi, ebx
jne 0x4fac2e
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x70c708]
cmp ecx, eax
jae 0x4fac28
or edx, 0xffffffff
sub edx, ecx
add eax, edx
mov dword [esp + 0x14], eax
jmp 0x4fac2e
sub ecx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [0x70c724]
mov ecx, dword [esp + 0x14]
mov dword [0x70c70c], ebp
add eax, ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret