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

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push edi
mov ebx, eax
mov esi, dword [0x50dd58]
cmp dword [esi], 0
je 0x4fba07
mov eax, dword [esi]
cmp byte [eax + 0x45], 0
je 0x4fba07
call sub.kernel32.dll_GetTickCount
mov edx, dword [esi]
sub eax, dword [edx + 0x40]
cmp eax, 0x2710
jbe 0x4fbc8b
mov eax, dword [esi]
mov byte [eax + 0x45], 0
jmp 0x4fbc8b
xor eax, eax
mov dword [esi], eax
mov eax, dword [ebx + 0x334]
call fcn.004754b8
mov edi, eax
mov eax, dword [0x50df6c]
cmp byte [eax], 3
jb 0x4fba31
test edi, edi
je 0x4fba31
mov eax, edi
call fcn.00473360
test eax, eax
jne 0x4fba4b
test edi, edi
je 0x4fbc8b
xor edx, edx
mov eax, edi
call fcn.0047319c
xor eax, eax
mov dword [esi], eax
jmp 0x4fbc8b
mov eax, dword [edi + 0xc]
mov dword [esi], eax
mov eax, dword [esi]
cmp dword [eax + 0xc], 0
jne 0x4fba6a
xor eax, eax
mov dword [esi], eax
xor edx, edx
mov eax, edi
call fcn.0047319c
jmp 0x4fbc8b
xor eax, eax
push ebp
push 0x4fbc81
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [esi]
mov dl, 1
call fcn.004abc14
mov eax, dword [esi]
cmp byte [eax + 0x38], 0
je 0x4fbb4e
mov eax, dword [esi]
cmp byte [eax + 0x44], 0
jne 0x4fbb4e
mov eax, dword [esi]
cmp dword [eax + 0x3c], 0x400
jl 0x4fbb4e
mov eax, dword [esi]
cmp dword [eax + 0x3c], 0xffff
jg 0x4fbb4e
mov eax, dword [esi]
mov byte [eax + 0x44], 1
mov eax, dword [esi]
mov byte [eax + 0x45], 1
call sub.kernel32.dll_GetTickCount
mov edx, dword [esi]
mov dword [edx + 0x40], eax
mov eax, dword [ebx + 0x360]
xor edx, edx
call fcn.00493124
mov eax, dword [ebx + 0x360]
xor edx, edx
call fcn.004931e4
mov eax, dword [ebx + 0x360]
xor edx, edx
call fcn.00493164
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
call fcn.00493880
test al, al
je 0x4fbb14
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x360]
call fcn.00493164
jmp 0x4fbb24
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x360]
call fcn.004931e4
mov eax, dword [esi]
mov edx, dword [eax + 0x3c]
mov eax, dword [ebx + 0x360]
call fcn.00493264
mov eax, dword [ebx + 0x360]
mov dl, 1
call fcn.00493124
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4fbc8b
mov eax, dword [esi]
cmp byte [eax + 0x2c], 0
jne 0x4fbc19
mov eax, dword [ebx + 0x318]
xor edx, edx
call fcn.00493124
mov eax, dword [ebx + 0x318]
xor edx, edx
call fcn.004931e4
mov eax, dword [ebx + 0x318]
xor edx, edx
call fcn.00493164
mov eax, dword [esi]
mov eax, dword [eax + 0x10]
call fcn.00493880
test al, al
je 0x4fbba1
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x318]
call fcn.00493164
jmp 0x4fbbb1
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ebx + 0x318]
call fcn.004931e4
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
mov eax, dword [ebx + 0x318]
call fcn.00493264
mov eax, dword [ebx + 0x318]
mov dl, 1
call fcn.00493124
call sub.kernel32.dll_GetTickCount
mov esi, eax
jmp 0x4fbbea
mov eax, dword [0x50e0a4]
mov eax, dword [eax]
call fcn.004611d8
push 0xa
call sub.kernel32.dll_Sleep_1
mov eax, dword [ebx + 0x318]
mov eax, dword [eax + 0x90]
cmp byte [eax + 8], 0
jne 0x4fbc0a
call sub.kernel32.dll_GetTickCount
sub eax, esi
cmp eax, 0x1388
jbe 0x4fbbd7
mov eax, dword [ebx + 0x318]
xor edx, edx
call fcn.00493124
jmp 0x4fbc77
mov edx, dword [0x50e0d4]
mov edx, dword [edx + 0x2a8]
mov eax, dword [ebx + 0x344]
mov eax, dword [eax + 0x68]
call fcn.00423d50
mov eax, dword [ebx + 0x344]
mov edx, 0x4fbc98
call fcn.00441884
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 0x4fbc8b
pop edi
pop esi
pop ebx
pop ebp
ret