Function at 0x4072e4
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb0
push ebx
push esi
push edi
mov ebx, eax
mov eax, 0x4bc7b0
call fcn.00479eb8
mov eax, ebx
call fcn.00406780
test al, al
jne 0x407315
xor eax, eax
mov edx, dword [ebp - 0x40]
mov dword fs:[0], edx
jmp 0x40767e
cmp byte [ebx + 0x328], 0
jne 0x40733d
lea esi, [ebx + 0x40c]
push esi
call sub.KERNEL32.DLL_EnterCriticalSection
mov eax, ebx
call fcn.00406e94
mov byte [ebx + 0x328], al
push esi
call sub.KERNEL32.DLL_LeaveCriticalSection
mov al, byte [ebx + 0x328]
test al, al
jne 0x407356
mov edx, dword [ebp - 0x40]
mov dword fs:[0], edx
jmp 0x40767e
xor esi, esi
jmp 0x40765f
mov edx, esi
mov eax, dword [ebx + 0x31c]
mov ecx, dword [eax]
call dword [ecx + 0x18]
test eax, eax
je 0x40765e
mov word [ebp - 0x30], 0x14
lea edx, [ebp - 4]
mov ecx, edx
mov edx, eax
mov eax, ecx
call fcn.00488be4
inc dword [ebp - 0x24]
mov word [ebp - 0x30], 8
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x320]
mov ecx, dword [eax]
call dword [ecx + 0x54]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x44], 0xffffffff
je 0x407648
mov word [ebp - 0x30], 0x2c
xor eax, eax
mov dword [ebp - 8], eax
lea ecx, [ebp - 8]
inc dword [ebp - 0x24]
mov edx, esi
mov eax, dword [ebx + 0x31c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebx + 0x324]
lea edx, [ebp - 8]
mov ecx, dword [eax]
mov edx, dword [edx]
call dword [ecx + 0x54]
mov dword [ebp - 0x48], eax
dec dword [ebp - 0x24]
lea eax, [ebp - 8]
mov edx, 2
call fcn.00488dd0
mov word [ebp - 0x30], 0x20
cmp dword [ebp - 0x48], 0xffffffff
jne 0x407548
mov edx, dword [ebp - 0x44]
mov eax, dword [ebx + 0x320]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edi, eax
test edi, edi
je 0x407642
push 0xa18
call fcn.00477a88
pop ecx
mov dword [ebp - 0xc], eax
test eax, eax
je 0x4074c2
mov word [ebp - 0x30], 0x44
push 0x100
push 0
mov edx, dword [ebp - 0xc]
push edx
call fcn.004798f8
add esp, 0xc
push 0x400
push 0
mov ecx, dword [ebp - 0xc]
add ecx, 0x100
push ecx
call fcn.004798f8
add esp, 0xc
push 0x100
push 0
mov eax, dword [ebp - 0xc]
add eax, 0x518
push eax
call fcn.004798f8
add esp, 0xc
push 0x400
push 0
mov edx, dword [ebp - 0xc]
add edx, 0x618
push edx
call fcn.004798f8
add esp, 0xc
mov ecx, dword [ebp - 0xc]
xor eax, eax
mov dword [ecx + 0x500], eax
mov edx, dword [ebp - 0xc]
xor ecx, ecx
mov dword [edx + 0x504], ecx
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [eax + 0x50c], edx
mov ecx, dword [ebp - 0xc]
mov byte [ecx + 0x508], 0
mov word [ebp - 0x30], 0x38
mov eax, dword [ebp - 0xc]
jmp 0x4074c5
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x4c], eax
xor eax, eax
mov word [ebp - 0x30], 0x20
mov edx, dword [ebp - 0x4c]
push esi
push edi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edx
xchg edi, esi
mov edx, ecx
mov eax, edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
call sub.KERNEL32.DLL_GetTickCount
mov edx, dword [ebp - 0x4c]
lea ecx, [ebp - 0x10]
mov dword [edx + 0x50c], eax
xor eax, eax
mov word [ebp - 0x30], 0x50
mov dword [ebp - 0x10], eax
mov edx, esi
inc dword [ebp - 0x24]
mov eax, dword [ebx + 0x31c]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebx + 0x324]
lea edx, [ebp - 0x10]
mov ecx, dword [ebp - 0x4c]
mov edi, dword [eax]
mov edx, dword [edx]
call dword [edi + 0x3c]
dec dword [ebp - 0x24]
lea eax, [ebp - 0x10]
mov edx, 2
call fcn.00488dd0
jmp 0x407642
mov edx, dword [ebp - 0x48]
mov eax, dword [ebx + 0x324]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edi, eax
test edi, edi
je 0x407642
call sub.KERNEL32.DLL_GetTickCount
sub eax, dword [edi + 0x50c]
cmp eax, 0xc350
jbe 0x407642
mov word [ebp - 0x30], 0x5c
lea edx, [edi + 0x100]
lea eax, [ebp - 0x14]
call fcn.00488be4
inc dword [ebp - 0x24]
mov dword [ebp - 0x50], eax
mov ecx, dword [ebp - 0x50]
cmp dword [ecx], 0
sete al
and eax, 1
test al, al
lea eax, [ebp - 0x14]
setne dl
and edx, 1
push edx
mov edx, 2
dec dword [ebp - 0x24]
call fcn.00488dd0
pop ecx
test ecx, ecx
je 0x407642
cmp byte [edi + 0x508], 0
jne 0x407642
mov word [ebp - 0x30], 0x68
lea eax, [ebp - 0x18]
mov edx, edi
call fcn.00488be4
inc dword [ebp - 0x24]
lea edx, [ebp - 0x18]
lea eax, [ebx + 0x3ac]
call fcn.00488e00
dec dword [ebp - 0x24]
lea eax, [ebp - 0x18]
mov edx, 2
call fcn.00488dd0
mov word [ebp - 0x30], 0x74
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
lea ecx, [ebp - 0x1c]
inc dword [ebp - 0x24]
mov edx, dword [ebp - 0x48]
mov eax, dword [ebx + 0x324]
mov edi, dword [eax]
call dword [edi + 0xc]
lea edx, [ebp - 0x1c]
lea eax, [ebx + 0x3b0]
call fcn.00488e00
dec dword [ebp - 0x24]
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.00488dd0
mov dl, 1
mov eax, dword [ebx + 0x2f4]
call fcn.00466788
mov word [ebp - 0x30], 8
dec dword [ebp - 0x24]
lea eax, [ebp - 4]
mov edx, 2
call fcn.00488dd0
mov word [ebp - 0x30], 0
inc esi
mov eax, dword [ebx + 0x31c]
mov edx, dword [eax]
call dword [edx + 0x14]
cmp esi, eax
jl 0x40735d
mov al, 1
mov edx, dword [ebp - 0x40]
mov dword fs:[0], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret