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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x30
mov eax, dword [0xcc3ff8]
mov ecx, dword [0xcc3fe0]
push ebx
push ebp
push esi
xor ebp, ebp
cmp eax, ebp
mov edx, eax
mov esi, 1
push edi
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], esi
jne 0x428a5b
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], esi
mov edx, esi
cmp ecx, ebp
jne 0x428a6b
mov dword [esp + 0x20], 0x3c
mov ecx, dword [esp + 0x20]
cmp edx, ecx
mov dword [esp + 0x18], ebp
jle 0x428a79
mov dword [esp + 0x1c], ecx
mov edx, ecx
mov al, byte [0xcc4030]
test al, al
mov ebp, dword [sym.imp.kernel32.dll_Sleep]
je 0x428c03
mov eax, dword [0xcc4018]
mov esi, dword [0xcc4020]
mov ebx, dword [0xcc4024]
mov edi, dword [sym.imp.kernel32.dll_QueryPerformanceCounter]
mov dword [esp + 0x28], eax
mov eax, dword [0xcc401c]
mov dword [esp + 0x2c], eax
xor eax, eax
mov dword [esp + 0x14], eax
cmp eax, edx
jl 0x428ac5
cmp dword [esp + 0x18], 0
jne 0x428bde
cmp dword [esp + 0x24], 0
jne 0x428ad4
cmp edx, eax
jle 0x428bcf
mov edx, dword [0xcc4028]
mov eax, dword [0xcc402c]
add esi, edx
adc ebx, eax
mov eax, ecx
cdq
push edx
push eax
push ebx
push esi
call fcn.0043d270
add dword [esp + 0x28], eax
adc dword [esp + 0x2c], edx
mov esi, ecx
lea ecx, [esp + 0x30]
push ecx
call edi
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
sub eax, ecx
mov ecx, dword [esp + 0x2c]
sbb ecx, edx
js 0x428bb9
jg 0x428b24
test eax, eax
jbe 0x428bb9
mov edx, dword [esp + 0x18]
push 0
push 0x3e8
push ecx
inc edx
push eax
mov dword [esp + 0x28], edx
call fcn.0043d230
mov ecx, dword [0xcc402c]
push ecx
mov ecx, dword [0xcc4028]
push ecx
push edx
push eax
call fcn.0043d180
cmp eax, 2
jle 0x428b65
cmp eax, 0x3e8
jl 0x428b61
mov eax, 0x3e8
dec eax
push eax
call ebp
lea edx, [esp + 0x30]
push edx
call edi
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
sub eax, ecx
mov ecx, dword [esp + 0x2c]
sbb ecx, edx
mov dword [esp + 0x3c], ecx
js 0x428bb9
jg 0x428b90
test eax, eax
jbe 0x428bb9
lea esp, [esp]
push 0
call ebp
lea edx, [esp + 0x30]
push edx
call edi
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
sub ecx, eax
mov eax, dword [esp + 0x2c]
sbb eax, edx
test eax, eax
jg 0x428b90
jl 0x428bb9
test ecx, ecx
ja 0x428b90
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x14], eax
jmp 0x428ab6
lea eax, [esp + 0x28]
push eax
xor esi, esi
xor ebx, ebx
call edi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [0xcc4020], esi
mov dword [0xcc4024], ebx
mov dword [0xcc4018], ecx
mov dword [0xcc401c], edx
jmp 0x428caf
mov edi, dword [0xcc4010]
mov esi, dword [0xcc400c]
mov ebx, dword [sym.imp.winmm.dll_timeGetTime]
xor eax, eax
mov dword [esp + 0x14], eax
jmp 0x428c20
cmp eax, edx
jl 0x428c2b
cmp dword [esp + 0x18], 0
jne 0x428c9f
cmp dword [esp + 0x24], 0
jne 0x428c36
cmp edx, eax
jle 0x428c99
add edi, 0x3e8
mov eax, edi
cdq
idiv ecx
add esi, eax
mov edi, edx
call ebx
mov ecx, esi
sub ecx, eax
test ecx, ecx
jle 0x428c86
mov edx, dword [esp + 0x18]
inc edx
cmp ecx, 2
mov dword [esp + 0x18], edx
jle 0x428c6e
cmp ecx, 0x3e8
jl 0x428c6a
mov ecx, 0x3e8
dec ecx
push ecx
call ebp
call ebx
mov ecx, esi
sub ecx, eax
test ecx, ecx
jle 0x428c86
push 0
call ebp
call ebx
mov edx, esi
sub edx, eax
test edx, edx
jg 0x428c78
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x14], eax
jmp 0x428c20
xor edi, edi
call ebx
mov esi, eax
mov eax, dword [esp + 0x14]
mov dword [0xcc4010], edi
mov dword [0xcc400c], esi
mov ecx, dword [esp + 0x18]
dec ecx
mov dword [0xcc4008], ecx
mov ecx, dword [0xcc4000]
add ecx, eax
pop edi
mov dword [0xcc4004], eax
mov dword [0xcc4000], ecx
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret