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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
mov eax, dword [0x10113900]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x58], ebx
push dword [esi + 0x18]
call fcn.100662c0
add esp, 4
test eax, eax
jne 0x10017084
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea eax, [ebp - 0x1c]
push eax
call edi
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
call fcn.100702f0
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
movsd qword [ebp - 0x4c], xmm0
call fcn.100702f0
movsd xmm1, qword [ebp - 0x4c]
mov ecx, esi
divsd xmm1, xmm0
movsd qword [ebp - 0x4c], xmm1
call fcn.10018c20
push dword [esi + 0x18]
call fcn.100644d0
add esp, 4
mov ecx, esi
push 0
call fcn.10019150
cmp byte [eax + 0xb5], 0
jne 0x10016ebc
mov eax, ebx
inc ebx
mov dword [ebp - 0x58], ebx
cmp eax, 5
jl 0x10016ebc
call fcn.10065f70
mov dword [ebp - 0x58], 0
jmp 0x10016ec1
call fcn.10065ef0
lea eax, [ebp - 0x2c]
push eax
call edi
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
call fcn.100702f0
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
movsd qword [ebp - 0x54], xmm0
call fcn.100702f0
movsd xmm1, qword [ebp - 0x54]
mov ecx, esi
divsd xmm1, xmm0
push 0
movsd xmm0, qword [0x10105e88]
subsd xmm1, qword [ebp - 0x4c]
mulsd xmm1, xmm0
call fcn.10019150
divsd xmm0, qword [eax + 0xb8]
comisd xmm0, xmm1
jbe 0x1001706e
subsd xmm0, xmm1
lea ecx, [ebp - 0x64]
cvttsd2si eax, xmm0
cdq
mov esi, eax
mov edi, edx
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x48], edi
call fcn.10002b40
mov eax, esi
or eax, edi
jne 0x10016f4a
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
jmp 0x10016fb8
test edi, edi
jg 0x10016f5c
jl 0x10016f54
test esi, esi
jae 0x10016f5c
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
jmp 0x10016fb8
mov ebx, dword [ebp - 0x60]
push 0
push 0x3e8
push edi
push esi
call fcn.100706c0
push 0
push 0x3e8
push dword [ebp - 0x48]
mov edi, eax
mov esi, edx
push dword [ebp - 0x50]
call fcn.100706c0
or ecx, 0xffffffff
sub ecx, eax
mov eax, 0x7fffffff
mov dword [ebp - 0x48], ecx
mov ecx, dword [ebp - 0x64]
sbb eax, edx
mov edx, dword [ebp - 0x48]
cmp ecx, edx
jne 0x10016fa0
cmp ebx, eax
je 0x10016fb0
cmp ebx, eax
jg 0x10016fb0
jl 0x10016faa
cmp ecx, edx
jae 0x10016fb0
add edi, ecx
adc esi, ebx
jmp 0x10016fb8
or edi, 0xffffffff
mov esi, 0x7fffffff
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x50], edi
nop
lea ecx, [ebp - 0x74]
call fcn.10002b40
mov ebx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
cmp edi, ebx
jne 0x10016fda
cmp esi, eax
je 0x10017065
cmp esi, eax
jl 0x10017065
jg 0x10016fe8
cmp edi, ebx
jb 0x10017065
call fcn.1006e6a3
push 0
push 0x64
push edx
push eax
call fcn.100706c0
sub edi, ebx
mov dword [ebp - 0x48], edx
mov ebx, dword [ebp - 0x40]
mov ecx, edi
sbb ebx, dword [ebp - 0x70]
mov esi, eax
mov edx, ebx
call fcn.100702f0
comisd xmm0, xmmword [0x10105e98]
jbe 0x10017028
mov eax, dword [ebp - 0x48]
add esi, 0xad160000
adc eax, 0x311cd
jmp 0x1001702f
add esi, edi
adc ebx, dword [ebp - 0x48]
mov eax, ebx
push 0
push 0x3b9aca00
push eax
push esi
call fcn.10097740
mov dword [ebp - 0x3c], eax
imul eax, eax, 0x3b9aca00
mov dword [ebp - 0x38], edx
sub esi, eax
lea eax, [ebp - 0x3c]
push eax
mov dword [ebp - 0x34], esi
call fcn.1006e053
mov esi, dword [ebp - 0x40]
add esp, 4
mov edi, dword [ebp - 0x50]
jmp 0x10016fc0
mov esi, dword [ebp - 0x68]
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
push dword [esi + 0x18]
call fcn.100662c0
mov ebx, dword [ebp - 0x58]
add esp, 4
test eax, eax
je 0x10016e46
mov ecx, dword [ebp - 8]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.1006f8b7
mov esp, ebp
pop ebp
ret 4