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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100d0121
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x10105230]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
test esi, esi
je 0x100230c7
mov edx, dword [0x1010e0b4]
mov eax, dword fs:[0x2c]
mov ecx, dword [0x1010f0c4]
mov ebx, dword [eax + edx*4]
cmp ecx, dword [ebx + 4]
jle 0x10022e5a
push 0x1010f0c4
call fcn.10095305
mov ecx, dword [0x1010f0c4]
add esp, 4
cmp ecx, 0xffffffff
jne 0x10022e5a
mov dword [ebp - 4], 0
call fcn.10030130
push 0x100da480
call fcn.10095166
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x1010f0c4
call fcn.100952bb
mov ecx, dword [0x1010f0c4]
add esp, 4
mov eax, dword [0x1010f3a8]
test eax, eax
mov edx, dword [ebx + 4]
setne byte [ebp - 0xd]
test eax, eax
je 0x10022ebe
cmp ecx, edx
jle 0x10022eb6
push 0x1010f0c4
call fcn.10095305
add esp, 4
cmp dword [0x1010f0c4], 0xffffffff
jne 0x10022eb6
mov dword [ebp - 4], 1
call fcn.10030130
push 0x100da480
call fcn.10095166
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x1010f0c4
call fcn.100952bb
add esp, 4
mov edi, dword [0x1010f348]
jmp 0x10022f0b
cmp ecx, edx
jle 0x10022f05
push 0x1010f0c4
call fcn.10095305
add esp, 4
cmp dword [0x1010f0c4], 0xffffffff
jne 0x10022f05
mov dword [ebp - 4], 2
call fcn.10030130
push 0x100da480
call fcn.10095166
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x1010f0c4
call fcn.100952bb
add esp, 4
mov edi, dword [0x1010f34c]
test edi, edi
je 0x100230c7
cmp byte [ebp - 0xd], 0
je 0x10023003
mov eax, 0x1010ee90
lock xadd dword [eax], esi
movq xmm0, qword [0x1010ee98]
movq qword [ebp - 0x20], xmm0
mov eax, dword [0x1010f0c4]
cmp eax, dword [ebx + 4]
jle 0x10022f83
push 0x1010f0c4
call fcn.10095305
add esp, 4
cmp dword [0x1010f0c4], 0xffffffff
jne 0x10022f83
mov dword [ebp - 4], 3
call fcn.10030130
push 0x100da480
call fcn.10095166
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x1010f0c4
call fcn.100952bb
add esp, 4
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push 0
push 0x3e8
push dword [0x1010f0cc]
push dword [0x1010f0c8]
call fcn.100c4c00
mov esi, dword [ebp - 0x18]
sub esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x14]
sbb ecx, dword [ebp - 0x1c]
push edx
push eax
push ecx
push esi
call fcn.100958e0
mov esi, eax
test edx, edx
jne 0x10022ff9
cmp esi, 0x3e8
jae 0x10022ff9
mov ecx, dword [0x1010ee90]
shl edi, 0xa
cmp ecx, edi
jle 0x100230c7
mov eax, 0x3e8
sub eax, esi
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x1010ee90
jmp 0x100230be
mov eax, 0x1010ee94
lock xadd dword [eax], esi
movq xmm0, qword [0x1010eea0]
movq qword [ebp - 0x18], xmm0
mov eax, dword [0x1010f0c4]
cmp eax, dword [ebx + 4]
jle 0x10023069
push 0x1010f0c4
call fcn.10095305
add esp, 4
cmp dword [0x1010f0c4], 0xffffffff
jne 0x10023069
mov dword [ebp - 4], 4
call fcn.10030130
push 0x100da480
call fcn.10095166
add esp, 4
mov dword [ebp - 4], 0xffffffff
push 0x1010f0c4
call fcn.100952bb
add esp, 4
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push 0
push 0x3e8
push dword [0x1010f0cc]
push dword [0x1010f0c8]
call fcn.100c4c00
mov esi, dword [ebp - 0x20]
sub esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
sbb ecx, dword [ebp - 0x14]
push edx
push eax
push ecx
push esi
call fcn.100958e0
mov esi, eax
test edx, edx
jne 0x100230b9
cmp esi, 0x3e8
jae 0x100230b9
mov ecx, dword [0x1010ee94]
jmp 0x10022fce
mov ecx, 0x1010ee94
xor eax, eax
xchg dword [ecx], eax
call fcn.10022c90
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret