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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, ecx
mov ebx, dword [edi + 0x154]
lea esi, [edi + 0x154]
test ebx, ebx
je case.0x1000efee.6
mov eax, dword [ebx + 0x50]
add eax, 0xfffffffe
cmp eax, 5
ja case.0x1000efee.6
jmp dword [eax*4 + 0x1000f280]
mov eax, dword [ebx + 0xc0]
test eax, eax
je case.0x1000efee.6
movd xmm0, dword [ebx + 0xc4]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm0, xmm0
mulss xmm1, dword [0x10058f50]
divss xmm1, xmm0
cvttss2si esi, xmm1
cmp esi, dword [edi + 0x1c4]
je case.0x1000efee.6
call fcn.100108c0
mov dword [edi + 0x1c4], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test dword [ebx + 0x4c], 0x220
jne 0x1000f050
mov byte [edi + 0x16], 1
lea ecx, [edi + 0x16c]
push esi
push dword [ecx + 0x10]
call fcn.10008260
mov dword [esi], 0
mov dword [edi + 0x1c0], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0xb0]
or eax, dword [ebx + 0xb4]
je case.0x1000efee.6
mov eax, dword [ebx + 0x4c]
shr eax, 9
test al, 1
je 0x1000f09a
push ebx
call fcn.1000e4a0
jmp 0x1000f0ac
mov dword [ebx + 0x50], 4
inc dword [edi + 0x1cc]
call fcn.100108c0
mov esi, dword [esi]
lea ecx, [esi + 0x38]
call fcn.10003560
push dword [esi + 0x38]
call dword [sym.imp.KERNEL32.dll_SetEvent]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x4c]
shr eax, 9
test al, 1
je 0x1000f0d8
push ecx
call fcn.1000ea10
jmp 0x1000f0dd
call fcn.100108c0
mov esi, dword [esi]
lea ecx, [esi + 0x38]
call fcn.10003560
push dword [esi + 0x38]
call dword [sym.imp.KERNEL32.dll_SetEvent]
lea esi, [edi + 0x154]
jmp 0x1000f050
mov esi, dword [ebx + 0xb0]
mov eax, esi
or eax, dword [ebx + 0xb4]
je case.0x1000efee.6
mov edx, dword [ebx + 0xbc]
mov ecx, dword [ebx + 0xb8]
call fcn.1004cae0
mov edx, dword [ebx + 0xb4]
mov ecx, esi
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x10058f50]
movss dword [ebp - 4], xmm0
call fcn.1004cae0
movss xmm1, dword [ebp - 4]
cvtsd2ss xmm0, xmm0
divss xmm1, xmm0
cvttss2si eax, xmm1
mov dword [ebp - 4], eax
cmp eax, dword [edi + 0x1c4]
je case.0x1000efee.6
mov ecx, dword [ebx + 0xb8]
mov esi, dword [edi + 0x1c0]
sub ecx, esi
mov edx, dword [ebx + 0xbc]
sbb edx, 0
call fcn.1004cae0
addsd xmm0, qword [edi + 0x1b8]
movsd qword [edi + 0x1b8], xmm0
mov ecx, dword [ebx + 0xb8]
mov edx, dword [ebx + 0xbc]
sub ecx, esi
sbb edx, 0
call fcn.1004cae0
addsd xmm0, qword [edi + 0x1a0]
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
movsd qword [edi + 0x1a0], xmm0
mov eax, dword [ebx + 0xb8]
mov dword [edi + 0x1c0], eax
mov eax, dword [ebp - 4]
mov dword [edi + 0x1c4], eax
mov eax, dword [0x10092e90]
or eax, dword [0x10092e94]
jne 0x1000f1ea
push 0x10092e90
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
push 0x10092e88
call esi
lea eax, [ebp - 8]
push eax
call esi
mov ecx, dword [ebp - 8]
sub ecx, dword [0x10092e88]
mov edx, dword [ebp - 4]
sbb edx, dword [0x10092e8c]
call fcn.1004cae0
mov edx, dword [0x10092e94]
mov ecx, dword [0x10092e90]
movsd qword [ebp - 8], xmm0
call fcn.1004cae0
movsd xmm2, qword [ebp - 8]
divsd xmm2, xmm0
movsd xmm1, qword [edi + 0x1a8]
addsd xmm1, qword [0x10058f30]
comisd xmm2, xmm1
jbe 0x1000f25f
movsd xmm0, qword [edi + 0x1b8]
movsd qword [edi + 0x1b0], xmm0
xorps xmm0, xmm0
movsd qword [edi + 0x1a8], xmm2
movsd qword [edi + 0x1b8], xmm0
mov eax, dword [edi + 0x154]
mov eax, dword [eax + 0x4c]
shr eax, 9
test al, 1
jne case.0x1000efee.6
mov ecx, edi
call fcn.100108c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret