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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x78
mov eax, dword [0x100f3900]
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.10064f60
add esp, 4
test eax, eax
jne 0x10016fd4
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.10075e50
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
movsd qword [ebp - 0x4c], xmm0
call fcn.10075e50
movsd xmm1, qword [ebp - 0x4c]
mov ecx, esi
divsd xmm1, xmm0
movsd qword [ebp - 0x4c], xmm1
call fcn.10018b70
push dword [esi + 0x18]
call fcn.10063170
add esp, 4
mov ecx, esi
push 0
call fcn.100190a0
cmp byte [eax + 0xb5], 0
jne 0x10016e0c
mov eax, ebx
inc ebx
mov dword [ebp - 0x58], ebx
cmp eax, 5
jl 0x10016e0c
call fcn.10064c10
mov dword [ebp - 0x58], 0
jmp 0x10016e11
call fcn.10064b90
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.10075e50
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
movsd qword [ebp - 0x54], xmm0
call fcn.10075e50
movsd xmm1, qword [ebp - 0x54]
mov ecx, esi
divsd xmm1, xmm0
push 0
movsd xmm0, qword [0x100e71f8]
subsd xmm1, qword [ebp - 0x4c]
mulsd xmm1, xmm0
call fcn.100190a0
divsd xmm0, qword [eax + 0xb8]
comisd xmm0, xmm1
jbe 0x10016fbe
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.10002a90
mov eax, esi
or eax, edi
jne 0x10016e9a
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
jmp 0x10016f08
test edi, edi
jg 0x10016eac
jl 0x10016ea4
test esi, esi
jae 0x10016eac
mov edi, dword [ebp - 0x64]
mov esi, dword [ebp - 0x60]
jmp 0x10016f08
mov ebx, dword [ebp - 0x60]
push 0
push 0x3e8
push edi
push esi
call fcn.10076250
push 0
push 0x3e8
push dword [ebp - 0x48]
mov edi, eax
mov esi, edx
push dword [ebp - 0x50]
call fcn.10076250
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 0x10016ef0
cmp ebx, eax
je 0x10016f00
cmp ebx, eax
jg 0x10016f00
jl 0x10016efa
cmp ecx, edx
jae 0x10016f00
add edi, ecx
adc esi, ebx
jmp 0x10016f08
or edi, 0xffffffff
mov esi, 0x7fffffff
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x50], edi
nop
lea ecx, [ebp - 0x74]
call fcn.10002a90
mov ebx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
cmp edi, ebx
jne 0x10016f2a
cmp esi, eax
je 0x10016fb5
cmp esi, eax
jl 0x10016fb5
jg 0x10016f38
cmp edi, ebx
jb 0x10016fb5
call fcn.10074203
push 0
push 0x64
push edx
push eax
call fcn.10076250
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.10075e50
comisd xmm0, xmmword [0x100e7208]
jbe 0x10016f78
mov eax, dword [ebp - 0x48]
add esi, 0xad160000
adc eax, 0x311cd
jmp 0x10016f7f
add esi, edi
adc ebx, dword [ebp - 0x48]
mov eax, ebx
push 0
push 0x3b9aca00
push eax
push esi
call fcn.1009e280
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.10073ba8
mov esi, dword [ebp - 0x40]
add esp, 4
mov edi, dword [ebp - 0x50]
jmp 0x10016f10
mov esi, dword [ebp - 0x68]
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
push dword [esi + 0x18]
call fcn.10064f60
mov ebx, dword [ebp - 0x58]
add esp, 4
test eax, eax
je 0x10016d96
mov ecx, dword [ebp - 8]
xor al, al
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10075417
mov esp, ebp
pop ebp
ret 4