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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
xorps xmm0, xmm0
push esi
movlpd qword [ebp - 0x24], xmm0
call fcn.004b81c0
mov esi, eax
mov dword [ebp - 8], esi
test esi, esi
jne 0x4098f4
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret
push 0x563a50
call dword [sym.imp.KERNEL32.DLL_QueryPerformanceFrequency]
test eax, eax
je 0x4098ed
mov ecx, dword [section..data]
mov eax, ecx
push ebx
and eax, 0x8000000f
jns 0x409918
dec eax
or eax, 0xfffffff0
inc eax
sub ecx, eax
push ecx
call fcn.004f1588
mov ebx, eax
add esp, 4
mov dword [ebp - 0xc], ebx
test ebx, ebx
jne 0x409932
pop ebx
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [section..data]
mov eax, ecx
push edi
and eax, 0x8000000f
jns 0x409947
dec eax
or eax, 0xfffffff0
inc eax
sub ecx, eax
push ecx
push ebx
call dword [sym.imp.KERNEL32.DLL_VirtualLock]
call fcn.00420eb0
mov dword [0x563a48], 0
call fcn.004b6720
lea ecx, [esi + 8]
mov dword [esi], eax
push ecx
lea edx, [esi + 0x41a8]
push edx
push eax
call fcn.004b6d20
add esp, 0xc
test eax, eax
jne 0x4099d0
push esi
mov dword [esi + 4], 1
call fcn.004b6e40
add esp, 4
test eax, eax
je 0x4099d0
mov edi, 0xa
nop dword [eax + eax]
mov eax, dword [section..data]
push esi
shr eax, 9
push eax
lea eax, [ebp - 0x24]
push eax
push ebx
call fcn.004b7a50
mov eax, dword [section..data]
push esi
shr eax, 9
push eax
lea eax, [ebp - 0x24]
push eax
push ebx
call fcn.004b61f0
add esp, 0x20
sub edi, 1
jne 0x4099a0
call fcn.004b6720
mov dword [esi], eax
test eax, eax
je 0x409b95
mov edi, dword [sym.imp.KERNEL32.DLL_QueryPerformanceCounter]
push dword [esi]
call fcn.004b6ef0
add esp, 4
test eax, eax
je 0x409b81
lea eax, [esi + 8]
push eax
lea eax, [esi + 0x41a8]
push eax
push dword [esi]
call fcn.004b6d20
push esi
mov dword [esi + 4], 1
call fcn.004b6e40
add esp, 0x10
lea eax, [ebp - 0x1c]
push eax
call edi
test eax, eax
je 0x409c0c
mov eax, dword [section..data]
push esi
shr eax, 9
push eax
lea eax, [ebp - 0x24]
push eax
push ebx
call fcn.004b7a50
add esp, 0x10
lea eax, [ebp - 0x14]
push eax
call edi
test eax, eax
je 0x409c0c
mov edx, dword [ebp - 0x14]
sub edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
sbb ecx, dword [ebp - 0x18]
mov eax, dword [0x563a48]
shl eax, 7
mov dword [eax + 0x5608b0], edx
mov dword [eax + 0x5608b4], ecx
lea eax, [ebp - 0x1c]
push eax
call edi
test eax, eax
je 0x409c0c
mov eax, dword [section..data]
push esi
shr eax, 9
push eax
lea eax, [ebp - 0x24]
push eax
push ebx
call fcn.004b61f0
add esp, 0x10
lea eax, [ebp - 0x14]
push eax
call edi
test eax, eax
je 0x409c0c
mov ebx, dword [0x563a48]
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
mov edx, dword [0x563a54]
shl ebx, 7
sub ecx, dword [ebp - 0x1c]
sbb eax, dword [ebp - 0x18]
mov dword [ebx + 0x5608b8], ecx
mov ecx, dword [0x563a50]
mov dword [ebx + 0x5608bc], eax
mov eax, dword [esi]
mov dword [ebx + 0x560848], eax
call fcn.004e23c0
mov edx, dword [ebx + 0x5608b4]
mov ecx, dword [ebx + 0x5608b0]
cvtsd2ss xmm0, xmm0
movss dword [ebp - 4], xmm0
call fcn.004e2380
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movd xmm0, dword [section..data]
divss xmm1, dword [ebp - 4]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
call fcn.004e207f
mov ecx, dword [ebx + 0x5608b8]
mov edi, edx
mov edx, dword [ebx + 0x5608bc]
mov esi, eax
call fcn.004e2380
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movd xmm0, dword [section..data]
divss xmm1, dword [ebp - 4]
cvtdq2ps xmm0, xmm0
divss xmm0, xmm1
call fcn.004e207f
add esi, eax
lea eax, [ebx + 0x56084c]
adc edi, edx
shrd esi, edi, 1
mov dword [ebx + 0x5608c0], esi
mov esi, dword [ebp - 8]
shr edi, 1
mov dword [ebx + 0x5608c4], edi
push dword [esi]
push eax
call fcn.004b6aa0
mov ebx, dword [ebp - 0xc]
add esp, 8
inc dword [0x563a48]
mov edi, dword [sym.imp.KERNEL32.DLL_QueryPerformanceCounter]
push dword [esi]
call fcn.004b6c00
add esp, 4
mov dword [esi], eax
test eax, eax
jne 0x4099e5
push esi
call fcn.004b8120
mov ecx, dword [section..data]
add esp, 4
mov eax, ecx
and eax, 0x8000000f
jns 0x409bb2
dec eax
or eax, 0xfffffff0
inc eax
sub ecx, eax
push ecx
push ebx
call dword [sym.imp.KERNEL32.DLL_VirtualUnlock]
push ebx
call fcn.004ec0b7
mov eax, dword [section..data]
mov ebx, dword [ebp + 8]
push ebx
mov dword [0x559004], eax
call fcn.00408cc0
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
add esp, 8
push 1
push 0x13b1
push ebx
call edi
mov esi, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call esi
push 1
push 8
push ebx
call edi
push eax
call esi
call fcn.00421690
pop edi
pop ebx
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
push esi
call fcn.004b8120
mov ecx, dword [section..data]
add esp, 4
mov eax, ecx
and eax, 0x8000000f
jns 0x409c29
dec eax
or eax, 0xfffffff0
inc eax
sub ecx, eax
push ecx
push ebx
call dword [sym.imp.KERNEL32.DLL_VirtualUnlock]
push ebx
call fcn.004ec0b7
add esp, 4
call fcn.00421690
mov ebx, dword [ebp + 8]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
push 1
push 0x13b1
push ebx
call edi
mov esi, dword [sym.imp.USER32.dll_EnableWindow]
push eax
call esi
push 1
push 8
push ebx
call edi
push eax
call esi
pop edi
pop ebx
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret