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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
xor ebx, ebx
push esi
push edi
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 8], ebx
jmp 0x41a894
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x5f5f6c], ebx
jne 0x41a88d
xor edi, edi
inc edi
mov dword [0x5f5f74], edi
cmp dword [0x5f5f68], ebx
jne 0x41aa1b
mov dword [0x5f5f6c], edi
cmp dword [0x5f5f8c], ebx
jne 0x41a8e5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.0040236d
pop ecx
call fcn.0040237f
cdq
mov ecx, 0x36ee80
idiv ecx
mov eax, 0x2932e00
sub eax, edx
mov dword [0x5f5f8c], eax
push 0x5f5f80
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
jne 0x41a93a
mov dword [0x5f5f80], ebx
mov dword [0x5f5f84], ebx
cmp dword [0x5f5f88], ebx
jne 0x41a99e
cmp dword [0x5f5f90], ebx
jne 0x41a99e
mov dword [0x5f5f90], edi
mov dword [0x5f5f6c], ebx
mov dword [0x5f5f74], edi
mov dword [0x5f5f88], ebx
call fcn.0041a877
jmp 0x41ab45
cmp dword [0x5f5f84], ebx
jg 0x41a96e
jl 0x41a950
cmp dword [0x5f5f80], 0x3e8
jae 0x41a95c
mov dword [0x5f5f80], ebx
mov dword [0x5f5f84], ebx
cmp dword [0x5f5f84], ebx
jl 0x41a99e
jg 0x41a96e
cmp dword [0x5f5f80], ebx
jbe 0x41a99e
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x41a99e
cmp dword [0x5f5f94], ebx
jne 0x41a992
mov dword [0x5f5f94], edi
cmp dword [0x5f5f88], ebx
je 0x41a91e
mov dword [0x5f5f80], ebx
mov dword [0x5f5f84], ebx
mov esi, dword [sym.imp.WINMM.dll_timeBeginPeriod]
mov dword [ebp - 4], edi
push edi
jmp 0x41a9c2
cmp dword [ebp - 4], 0xa
jae 0x41a9c8
cmp dword [0x5f5f88], ebx
je 0x41a91e
inc dword [ebp - 4]
push dword [ebp - 4]
call esi
test eax, eax
jne 0x41a9aa
cmp dword [0x5f5f84], ebx
jl 0x41a9f5
jg 0x41a9da
cmp dword [0x5f5f80], ebx
jbe 0x41a9f5
push 0x5f5f78
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x41a9f5
mov dword [0x5f5f80], ebx
mov dword [0x5f5f84], ebx
push edi
call esi
mov dword [0x5f5f80], ebx
mov dword [0x5f5f84], ebx
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x5f5f70], eax
mov dword [0x5f5f68], edi
mov dword [0x5f5f6c], ebx
cmp dword [0x5f5f84], ebx
jl 0x41ab08
jg 0x41aa37
mov esi, dword [0x5f5f80]
cmp esi, ebx
jbe 0x41ab0e
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x41aa83
cmp dword [0x5f5f98], ebx
jne 0x41aa72
mov dword [0x5f5f98], edi
cmp dword [0x5f5f88], ebx
jne 0x41aa61
mov dword [0x5f5f88], ebx
mov dword [0x5f5f68], ebx
mov dword [0x5f5f74], ebx
jmp 0x41a930
xor esi, esi
xor eax, eax
mov dword [0x5f5f80], esi
mov dword [0x5f5f84], eax
jmp 0x41aa8e
mov eax, dword [0x5f5f84]
mov esi, dword [0x5f5f80]
cmp eax, ebx
jg 0x41aad3
jl 0x41aa9c
cmp esi, 0x3e8
jae 0x41aad3
mov ecx, esi
or ecx, eax
je 0x41aad3
cmp dword [0x5f5f9c], ebx
jne 0x41aac4
mov dword [0x5f5f9c], edi
cmp dword [0x5f5f88], ebx
jne 0x41aac4
mov dword [0x5f5f74], edi
mov dword [0x5f5f88], ebx
xor esi, esi
xor eax, eax
mov dword [0x5f5f80], esi
mov dword [0x5f5f84], eax
mov edi, dword [ebp - 0x10]
sub edi, dword [0x5f5f78]
mov ecx, dword [ebp - 0xc]
sbb ecx, dword [0x5f5f7c]
push ebx
push 0x3e8
push eax
push esi
mov dword [ebp - 8], ecx
call fcn.004a8820
push edx
push eax
mov eax, dword [ebp - 8]
push eax
push edi
call fcn.004a8820
mov dword [ebp - 8], eax
xor ebx, ebx
jmp 0x41ab0e
mov esi, dword [0x5f5f80]
or esi, dword [0x5f5f84]
jne 0x41ab37
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ecx, dword [0x5f5f70]
cmp ecx, eax
jae 0x41ab32
or edx, 0xffffffff
sub edx, ecx
add eax, edx
mov dword [ebp - 8], eax
jmp 0x41ab37
sub ecx, eax
mov dword [ebp - 8], ecx
mov eax, dword [0x5f5f8c]
add eax, dword [ebp - 8]
mov dword [0x5f5f74], ebx
pop edi
pop esi
pop ebx
leave
ret