Function at 0x450200
Capabilities:
Check for time delay via gettickcount
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
cmp edi, 0x578
jne 0x4502e3
mov ecx, dword [0x50b39c]
call fcn.004068a0
test al, al
je 0x4504c1
cmp dword [0x50bb90], 0
je 0x4504c1
mov eax, dword [esi + 0xf36a4]
mov ecx, dword [esi + 0xf36a0]
push 0
push 0x3e8
push eax
push ecx
call fcn.004b17e0
push edx
push eax
lea edx, [ebp - 0x110]
push str.Performance_counters___I64i_
push edx
call dword [sym.imp.USER32.dll_wsprintfW]
mov ecx, dword [esi + 0xf2db8]
add esp, 0x10
lea eax, [ebp - 0x110]
push eax
push edi
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
mov edx, dword [esi + 0xf36a0]
or edx, dword [esi + 0xf36a4]
mov edi, 0x579
je 0x4504c1
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
cmp edi, 0x57d
ja 0x4504c1
mov ecx, dword [esi + 0xf3894]
mov edx, dword [0x50b3a4]
push 0
lea eax, [edi - 0x579]
push eax
mov eax, dword [edx + 0xf2db8]
push ecx
push eax
call ebx
mov ecx, dword [esi + 0xf36a0]
inc edi
or ecx, dword [esi + 0xf36a4]
jne 0x4502a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
lea eax, [edi - 0x579]
mov dword [ebp + 8], eax
cmp eax, 4
ja 0x4504c1
cmp edi, 0x579
jne 0x45036f
lea edx, [ebp - 8]
xor edi, edi
push edx
mov dword [ebp - 8], edi
mov dword [ebp - 4], edi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esi + 0xf3748]
mov ecx, dword [ebp - 8]
mov dword [esi + eax*8 + 0xf36a8], ecx
mov edx, dword [ebp - 4]
mov dword [esi + eax*8 + 0xf36ac], edx
inc dword [esi + 0xf3748]
cmp dword [esi + 0xf3748], 0x14
jl 0x45033e
mov dword [esi + 0xf3748], edi
cmp dword [0x50bb90], edi
je 0x4504c1
mov eax, dword [esi + 0xf3894]
mov ecx, dword [0x50b3a4]
mov edx, dword [ecx + 0xf2db8]
push edi
push edi
push eax
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp edi, 0x57d
jne 0x4503ea
lea eax, [ebp - 8]
xor edi, edi
push eax
mov dword [ebp - 8], edi
mov dword [ebp - 4], edi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esi + 0xf37f0]
mov ecx, dword [ebp - 8]
mov dword [esi + eax*8 + 0xf3750], ecx
mov edx, dword [ebp - 4]
mov dword [esi + eax*8 + 0xf3754], edx
inc dword [esi + 0xf37f0]
cmp dword [esi + 0xf37f0], 0x14
jl 0x4503b8
mov dword [esi + 0xf37f0], edi
cmp dword [0x50bb90], edi
je 0x4504c1
mov eax, dword [esi + 0xf3894]
mov ecx, dword [0x50b3a4]
mov edx, dword [ecx + 0xf2db8]
push edi
push 4
push eax
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
cmp dword [ebp + 0xc], 0
jne 0x450407
lea eax, [esi + edi*8 + 0xf0c30]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov ecx, dword [esi + edi*8 + 0xf0c30]
or ecx, dword [esi + edi*8 + 0xf0c34]
je 0x4504c1
mov edx, dword [esi + 0xf36a0]
or edx, dword [esi + 0xf36a4]
je 0x4504c1
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [ebp - 0x10]
sub eax, dword [esi + edi*8 + 0xf0c30]
mov ebx, dword [ebp - 0xc]
sbb ebx, dword [esi + edi*8 + 0xf0c34]
mov ecx, dword [esi + edi*8 + 0xf0c5c]
cmp ecx, ebx
mov dword [ebp - 8], eax
jl 0x45047d
jg 0x450466
mov edx, dword [esi + edi*8 + 0xf0c58]
cmp edx, eax
jb 0x45047d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + edi*4 + 0xf2264]
cmp eax, 0x1388
jbe 0x4504c1
mov eax, dword [ebp - 8]
mov dword [esi + edi*8 + 0xf0c58], eax
mov dword [esi + edi*8 + 0xf0c5c], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + edi*4 + 0xf2264], eax
cmp dword [0x50bb90], 0
je 0x4504c1
mov eax, dword [ebp + 8]
mov ecx, dword [esi + 0xf3894]
mov edx, dword [0x50b3a4]
push 0
push eax
mov eax, dword [edx + 0xf2db8]
push ecx
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8