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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
push esi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], edx
mov ebx, eax
mov byte [ebp - 9], 1
mov si, word [ebx]
mov eax, esi
and ax, 0xfff
cmp ax, 0x10f
jae 0x4147a4
test si, si
jne 0x414641
xor edx, edx
mov al, 1
call fcn.00414244
mov byte [ebp - 9], al
jmp 0x414a18
cmp si, 1
jne 0x41465b
mov ecx, dword [ebp - 8]
xor edx, edx
mov al, 2
call fcn.00414258
mov byte [ebp - 9], al
jmp 0x414a18
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov ax, word [eax]
call fcn.004151e0
test al, al
jne 0x414677
call fcn.0040f530
jmp 0x414a18
lea eax, [ebp - 0xc]
push eax
mov edx, ebx
mov ecx, 0xb
mov eax, dword [ebp - 0x18]
mov esi, dword [eax]
call dword [esi + 4]
test al, al
je 0x414740
mov ax, word [ebx]
cmp ax, word [ebp - 0xc]
je 0x414716
lea eax, [ebp - 0x28]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
xor eax, eax
push ebp
push 0x41470f
push dword fs:[eax]
mov dword fs:[eax], esp
movzx ecx, word [ebp - 0xc]
mov edx, ebx
lea eax, [ebp - 0x28]
call fcn.004102c0
mov ax, word [ebp - 0x28]
and ax, 0xfff
cmp ax, word [ebp - 0xc]
je 0x4146d3
call fcn.0040f440
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0x34]
and eax, 0x7f
mov edx, dword [ebp - 8]
lea edx, [edx*2 + 0x4e3388]
mov al, byte [edx + eax - 0x1c]
mov byte [ebp - 9], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x414a18
lea eax, [ebp - 0x28]
call fcn.0040fccc
ret
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
mov edx, ebx
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0x34]
and eax, 0x7f
mov edx, dword [ebp - 8]
lea edx, [edx*2 + 0x4e3388]
mov al, byte [edx + eax - 0x1c]
mov byte [ebp - 9], al
jmp 0x414a18
lea eax, [ebp - 0x28]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
xor eax, eax
push ebp
push 0x41479d
push dword fs:[eax]
mov dword fs:[eax], esp
movzx ecx, word [ebx]
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x28]
call fcn.004102c0
mov ax, word [ebp - 0x28]
and ax, 0xfff
cmp ax, word [ebx]
je 0x414777
call fcn.0040f440
lea edx, [ebp - 0x28]
mov eax, ebx
mov ecx, dword [ebp - 8]
call fcn.00414478
mov byte [ebp - 9], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x414a18
lea eax, [ebp - 0x28]
call fcn.0040fccc
ret
mov eax, dword [ebp - 4]
mov ax, word [eax]
test ax, ax
jne 0x4147c0
mov dl, 1
xor eax, eax
call fcn.00414244
mov byte [ebp - 9], al
jmp 0x414a18
mov edx, dword [ebp - 4]
cmp ax, 1
jne 0x4147dd
mov ecx, dword [ebp - 8]
mov dl, 2
xor eax, eax
call fcn.00414258
mov byte [ebp - 9], al
jmp 0x414a18
lea edx, [ebp - 0x14]
mov eax, esi
call fcn.004151e0
test al, al
jne 0x4147f5
call fcn.0040f530
jmp 0x414a18
lea eax, [ebp - 0xe]
push eax
mov edx, dword [ebp - 4]
mov ecx, 0xb
mov eax, dword [ebp - 0x14]
mov esi, dword [eax]
call dword [esi + 8]
test al, al
je 0x4148be
mov eax, dword [ebp - 4]
mov ax, word [eax]
cmp ax, word [ebp - 0xe]
je 0x414894
lea eax, [ebp - 0x28]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
xor eax, eax
push ebp
push 0x41488d
push dword fs:[eax]
mov dword fs:[eax], esp
movzx ecx, word [ebp - 0xe]
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x28]
call fcn.004102c0
mov ax, word [ebp - 0x28]
cmp ax, word [ebp - 0xe]
je 0x414852
call fcn.0040f440
mov eax, dword [ebp - 8]
push eax
lea ecx, [ebp - 0x28]
mov edx, ebx
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax]
call dword [ebx + 0x34]
and eax, 0x7f
mov edx, dword [ebp - 8]
lea edx, [edx*2 + 0x4e3388]
mov al, byte [edx + eax - 0x1c]
mov byte [ebp - 9], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x414a18
lea eax, [ebp - 0x28]
call fcn.0040fccc
ret
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
mov edx, ebx
mov eax, dword [ebp - 0x14]
mov ebx, dword [eax]
call dword [ebx + 0x34]
and eax, 0x7f
mov edx, dword [ebp - 8]
lea edx, [edx*2 + 0x4e3388]
mov al, byte [edx + eax - 0x1c]
mov byte [ebp - 9], al
jmp 0x414a18
mov esi, dword [ebp - 4]
mov si, word [esi]
mov eax, esi
and ax, 0xfff
cmp ax, 0x10f
jae 0x414936
lea eax, [ebp - 0x28]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
xor eax, eax
push ebp
push 0x41492f
push dword fs:[eax]
mov dword fs:[eax], esp
mov ecx, dword [ebp - 4]
movzx ecx, word [ecx]
mov edx, ebx
lea eax, [ebp - 0x28]
call fcn.004102c0
mov eax, dword [ebp - 4]
mov ax, word [eax]
cmp ax, word [ebp - 0x28]
je 0x414908
call fcn.0040f440
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x28]
mov ecx, dword [ebp - 8]
call fcn.00414478
mov byte [ebp - 9], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x414a18
lea eax, [ebp - 0x28]
call fcn.0040fccc
ret
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, esi
call fcn.004151e0
test al, al
jne 0x414951
call fcn.0040f530
jmp 0x414a18
lea eax, [ebp - 0xc]
push eax
mov edx, ebx
mov ecx, 0xb
mov eax, dword [ebp - 0x18]
mov esi, dword [eax]
call dword [esi + 4]
test al, al
je 0x414a13
mov ax, word [ebx]
cmp ax, word [ebp - 0xc]
je 0x4149ec
lea eax, [ebp - 0x28]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
xor eax, eax
push ebp
push 0x4149e5
push dword fs:[eax]
mov dword fs:[eax], esp
movzx ecx, word [ebp - 0xc]
mov edx, ebx
lea eax, [ebp - 0x28]
call fcn.004102c0
mov ax, word [ebp - 0x28]
cmp ax, word [ebp - 0xc]
je 0x4149a9
call fcn.0040f440
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0x34]
and eax, 0x7f
mov edx, dword [ebp - 8]
lea edx, [edx*2 + 0x4e3388]
mov al, byte [edx + eax - 0x1c]
mov byte [ebp - 9], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x414a18
lea eax, [ebp - 0x28]
call fcn.0040fccc
ret
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
mov edx, ebx
mov eax, dword [ebp - 0x18]
mov ebx, dword [eax]
call dword [ebx + 0x34]
and eax, 0x7f
mov edx, dword [ebp - 8]
lea edx, [edx*2 + 0x4e3388]
mov al, byte [edx + eax - 0x1c]
mov byte [ebp - 9], al
jmp 0x414a18
call fcn.0040f530
mov al, byte [ebp - 9]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret