Function at 0x4a4ba8
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 0x4a4bcc
push ebp
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x645ff8], ebp
jne 0x4a4bc5
xor edi, edi
inc edi
cmp dword [0x645ff4], ebp
mov dword [0x646010], edi
jne 0x4a4d6f
cmp dword [0x646018], ebp
mov dword [0x645ff8], edi
jne 0x4a4c1d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.004b5860
pop ecx
call fcn.004b586d
cdq
mov ecx, 0x36ee80
idiv ecx
mov eax, 0x2932e00
sub eax, edx
mov dword [0x646018], eax
push 0x646008
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
jne 0x4a4c89
cmp dword [0x646014], ebp
mov dword [0x646008], ebp
mov dword [0x64600c], ebp
jne 0x4a4cf8
cmp dword [0x64601c], ebp
jne 0x4a4cf8
mov dword [0x64601c], edi
push str.:9:TimeGetTime___initialization:_No_performance_counter_exists_
mov dword [0x645ff8], ebp
mov dword [0x646010], ebp
mov dword [0x646014], edi
call fcn.00417db7
pop ecx
mov dword [0x646010], edi
mov dword [0x646014], ebp
call fcn.004a4ba8
jmp 0x4a4f03
cmp dword [0x64600c], ebp
jg 0x4a4cbd
jl 0x4a4c9f
cmp dword [0x646008], 0x3e8
jae 0x4a4cab
mov dword [0x646008], ebp
mov dword [0x64600c], ebp
cmp dword [0x64600c], ebp
jl 0x4a4cf8
jg 0x4a4cbd
cmp dword [0x646008], ebp
jbe 0x4a4cf8
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x4a4cf8
cmp dword [0x646020], ebp
jne 0x4a4cec
cmp dword [0x646014], ebp
mov dword [0x646020], edi
jne 0x4a4cec
push str.:8:QueryPerformanceCounter___FAILED_to_initialize_in_TimeGetTime___initialization_
jmp 0x4a4c5b
mov dword [0x646008], ebp
mov dword [0x64600c], ebp
mov esi, dword [sym.imp.WINMM.dll_timeBeginPeriod]
mov ebx, edi
push edi
jmp 0x4a4d16
cmp ebx, 0xa
jae 0x4a4d1c
cmp dword [0x646014], ebp
je 0x4a4de4
inc ebx
push ebx
call esi
test eax, eax
jne 0x4a4d03
cmp dword [0x64600c], ebp
jl 0x4a4d49
jg 0x4a4d2e
cmp dword [0x646008], ebp
jbe 0x4a4d49
push 0x646000
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x4a4d49
mov dword [0x646008], ebp
mov dword [0x64600c], ebp
push edi
call esi
mov dword [0x646008], ebp
mov dword [0x64600c], ebp
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x645ffc], eax
mov dword [0x645ff4], edi
mov dword [0x645ff8], ebp
mov ebx, dword [0x64600c]
cmp ebx, ebp
jl 0x4a4ec5
jg 0x4a4d8d
mov esi, dword [0x646008]
cmp esi, ebp
jbe 0x4a4ecb
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x4a4e20
cmp dword [0x646024], ebp
jne 0x4a4e0e
cmp dword [0x646014], ebp
mov dword [0x646024], edi
jne 0x4a4dd3
push str.:9:QueryPerformanceCounter___FAILED_______________________
mov dword [0x646014], edi
mov dword [0x646010], ebp
call fcn.004178df
pop ecx
mov dword [0x646014], ebp
mov dword [0x645ff4], ebp
mov dword [0x646010], ebp
jmp 0x4a4c7f
push str._GetLastError_
push ebx
push str.:8:QueryPerformanceCounter___FAILED_to_set_timeGetTime___granularity:_timeBeginPeriod__d__failed:_trying_one_higher:__s
mov dword [0x646014], edi
mov dword [0x646010], ebp
mov dword [0x645ff8], ebp
call fcn.00417db7
add esp, 0xc
jmp 0x4a4c73
xor esi, esi
xor ebx, ebx
mov dword [0x646008], esi
mov dword [0x64600c], ebx
jmp 0x4a4e2c
mov ebx, dword [0x64600c]
mov esi, dword [0x646008]
cmp ebx, ebp
jg 0x4a4e8b
jl 0x4a4e3a
cmp esi, 0x3e8
jae 0x4a4e8b
mov eax, esi
or eax, ebx
je 0x4a4e8b
cmp dword [0x646028], ebp
jne 0x4a4e7b
cmp dword [0x646014], ebp
mov dword [0x646028], edi
jne 0x4a4e7b
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 [0x646014], edi
mov dword [0x646010], ebp
call fcn.004178df
pop ecx
pop ecx
mov dword [0x646010], edi
mov dword [0x646014], ebp
xor esi, esi
xor ebx, ebx
mov dword [0x646008], esi
mov dword [0x64600c], ebx
mov edi, dword [esp + 0x18]
sub edi, dword [0x646000]
mov eax, dword [esp + 0x1c]
sbb eax, dword [0x646004]
push ebp
push 0x3e8
push ebx
push esi
mov dword [esp + 0x24], eax
call fcn.004cd930
push edx
push eax
mov eax, dword [esp + 0x1c]
push eax
push edi
call fcn.004cd930
mov dword [esp + 0x14], eax
xor ebp, ebp
jmp 0x4a4ecb
mov esi, dword [0x646008]
or esi, ebx
jne 0x4a4ef2
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x645ffc]
cmp ecx, eax
jae 0x4a4eec
or edx, 0xffffffff
sub edx, ecx
add eax, edx
mov dword [esp + 0x14], eax
jmp 0x4a4ef2
sub ecx, eax
mov dword [esp + 0x14], ecx
mov eax, dword [0x646018]
mov ecx, dword [esp + 0x14]
mov dword [0x646010], ebp
add eax, ecx
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret