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

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push ebx
push esi
push edi
mov ebx, eax
mov edi, dword [0x50dd70]
xor eax, eax
push ebp
push 0x4fc091
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [edi], 0
je 0x4fbd27
mov eax, dword [edi]
cmp byte [eax + 0x45], 0
je 0x4fbd27
call sub.kernel32.dll_GetTickCount
mov edx, dword [edi]
sub eax, dword [edx + 0x40]
cmp eax, 0x2710
jbe 0x4fc076
mov eax, dword [edi]
mov byte [eax + 0x45], 0
jmp 0x4fc076
xor eax, eax
mov dword [edi], eax
mov eax, dword [ebx + 0x334]
call fcn.004755a0
mov esi, eax
mov eax, dword [0x50df84]
cmp byte [eax], 3
jb 0x4fbd51
test esi, esi
je 0x4fbd51
mov eax, esi
call fcn.00473448
test eax, eax
jne 0x4fbd6b
test esi, esi
je 0x4fc076
xor edx, edx
mov eax, esi
call fcn.00473284
xor eax, eax
mov dword [edi], eax
jmp 0x4fc076
mov eax, dword [esi + 0xc]
mov dword [edi], eax
mov eax, dword [edi]
cmp dword [eax + 0xc], 0
jne 0x4fbd8a
xor eax, eax
mov dword [edi], eax
xor edx, edx
mov eax, esi
call fcn.00473284
jmp 0x4fc076
xor edx, edx
push ebp
push 0x4fc06c
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [edi]
mov dl, 1
call fcn.004abdac
mov eax, dword [edi]
mov al, byte [eax + 0x38]
test al, al
jne 0x4fbe6f
mov eax, dword [edi]
cmp byte [eax + 0x44], 0
jne 0x4fbf39
mov eax, dword [edi]
cmp dword [eax + 0x3c], 0x400
jl 0x4fbf39
mov eax, dword [edi]
cmp dword [eax + 0x3c], 0xffff
jg 0x4fbf39
mov eax, dword [edi]
mov byte [eax + 0x44], 1
mov eax, dword [edi]
mov byte [eax + 0x45], 1
call sub.kernel32.dll_GetTickCount
mov edx, dword [edi]
mov dword [edx + 0x40], eax
mov eax, dword [ebx + 0x360]
xor edx, edx
call fcn.00493210
mov eax, dword [ebx + 0x360]
xor edx, edx
call fcn.004932d0
mov eax, dword [ebx + 0x360]
xor edx, edx
call fcn.00493250
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
call fcn.004939cc
test al, al
je 0x4fbe35
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x360]
call fcn.00493250
jmp 0x4fbe45
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x360]
call fcn.004932d0
mov eax, dword [edi]
mov edx, dword [eax + 0x3c]
mov eax, dword [ebx + 0x360]
call fcn.00493350
mov eax, dword [ebx + 0x360]
mov dl, 1
call fcn.00493210
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4fc076
cmp al, 1
jne 0x4fbf39
mov eax, dword [0x50e3ec]
cmp dword [eax + 0x49], 0
jle 0x4fbf39
mov eax, dword [edi]
cmp byte [eax + 0x44], 0
jne 0x4fbf39
mov eax, dword [edi]
cmp dword [eax + 0x3c], 1
jl 0x4fbf39
mov eax, dword [edi]
cmp dword [eax + 0x3c], 0xffff
jg 0x4fbf39
mov edx, dword [0x50dd54]
mov edx, dword [edx]
lea eax, [ebp - 8]
mov ecx, 0x4fc0a8
call fcn.00404f9c
mov eax, dword [ebp - 8]
call fcn.00409d20
test al, al
je 0x4fbf39
mov edx, dword [0x50dd54]
mov edx, dword [edx]
lea eax, [ebp - 0xc]
mov ecx, 0x4fc0a8
call fcn.00404f9c
mov eax, dword [ebp - 0xc]
call fcn.00405150
push eax
call sub.kernel32.dll_LoadLibraryA
mov esi, eax
test esi, esi
jbe 0x4fbf39
push 0x4fc0b8
push esi
call sub.kernel32.dll_GetProcAddress_1
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x4fbf33
push 1
mov eax, dword [edi]
mov eax, dword [eax + 0x3c]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
call fcn.00405150
push eax
push 1
push 0xf827ad
call dword [ebp - 4]
cmp eax, 1
sete al
mov edx, dword [edi]
mov byte [edx + 0x44], al
push esi
call sub.kernel32.dll_FreeLibrary_1
mov eax, dword [edi]
cmp byte [eax + 0x2c], 0
jne 0x4fc004
mov eax, dword [ebx + 0x318]
xor edx, edx
call fcn.00493210
mov eax, dword [ebx + 0x318]
xor edx, edx
call fcn.004932d0
mov eax, dword [ebx + 0x318]
xor edx, edx
call fcn.00493250
mov eax, dword [edi]
mov eax, dword [eax + 0x10]
call fcn.004939cc
test al, al
je 0x4fbf8c
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x318]
call fcn.00493250
jmp 0x4fbf9c
mov eax, dword [edi]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x318]
call fcn.004932d0
mov eax, dword [edi]
mov edx, dword [eax + 0x14]
mov eax, dword [ebx + 0x318]
call fcn.00493350
mov eax, dword [ebx + 0x318]
mov dl, 1
call fcn.00493210
call sub.kernel32.dll_GetTickCount
mov esi, eax
jmp 0x4fbfd5
mov eax, dword [0x50e0bc]
mov eax, dword [eax]
call fcn.004612c0
push 0xa
call sub.kernel32.dll_Sleep_1
mov eax, dword [ebx + 0x318]
mov eax, dword [eax + 0x90]
cmp byte [eax + 8], 0
jne 0x4fbff5
call sub.kernel32.dll_GetTickCount
sub eax, esi
cmp eax, 0x1388
jbe 0x4fbfc2
mov eax, dword [ebx + 0x318]
xor edx, edx
call fcn.00493210
jmp 0x4fc062
mov edx, dword [0x50e0f0]
mov edx, dword [edx + 0x2a8]
mov eax, dword [ebx + 0x344]
mov eax, dword [eax + 0x68]
call fcn.00423e38
mov eax, dword [ebx + 0x344]
mov edx, 0x4fc0cc
call fcn.0044196c
mov eax, dword [ebx + 0x2f8]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [ebx + 0x2fc]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [ebx + 0x304]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
mov eax, dword [ebx + 0x300]
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x64]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4fc076
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4fc098
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00404cb4
ret