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

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push 0
push ebx
push esi
push edi
mov esi, ecx
mov ebx, edx
mov edi, eax
xor eax, eax
push ebp
push 0x4bb829
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004cd71c
test al, al
jne 0x4bb80e
mov eax, dword [0x4d730c]
cmp byte [eax], 0
je 0x4bb5db
mov eax, dword [0x4d71f0]
cmp byte [eax], 0
jne 0x4bb80e
mov eax, dword [0x4d6de4]
cmp byte [eax], 0
je 0x4bb663
cmp esi, 1
jne 0x4bb624
call sub.KERNEL32.DLL_GetTickCount
sub eax, dword [edi + 0x484]
cmp eax, 0x2710
jae 0x4bb612
fld qword [edi + 0x3f0]
mov eax, dword [0x4d6d80]
fadd qword [eax]
fstp qword [edi + 0x3f0]
wait
jmp 0x4bb673
fld qword [edi + 0x3f0]
fadd qword [ebp + 8]
fstp qword [edi + 0x3f0]
wait
jmp 0x4bb673
cmp esi, 2
jne 0x4bb673
call sub.KERNEL32.DLL_GetTickCount
sub eax, dword [edi + 0x488]
cmp eax, 0x2710
jae 0x4bb651
fld qword [edi + 0x3f0]
mov eax, dword [0x4d6de0]
fadd qword [eax]
fstp qword [edi + 0x3f0]
wait
jmp 0x4bb673
fld qword [edi + 0x3f0]
fadd qword [ebp + 8]
fstp qword [edi + 0x3f0]
wait
jmp 0x4bb673
fld qword [edi + 0x3f0]
fadd qword [ebp + 8]
fstp qword [edi + 0x3f0]
wait
cmp esi, 1
jne 0x4bb693
call sub.KERNEL32.DLL_GetTickCount
mov dword [edi + 0x484], eax
mov eax, dword [0x4d7418]
inc dword [eax]
mov eax, dword [0x4d72f0]
inc dword [eax]
jmp 0x4bb6b1
cmp esi, 2
jne 0x4bb6b1
call sub.KERNEL32.DLL_GetTickCount
mov dword [edi + 0x488], eax
mov eax, dword [0x4d7480]
inc dword [eax]
mov eax, dword [0x4d7364]
inc dword [eax]
mov eax, edi
call fcn.004c1508
xor edx, edx
mov eax, dword [edi + 0x308]
call fcn.0042f270
mov eax, dword [edi + 0x308]
xor edx, edx
mov dword [eax + 0xc], edx
mov edx, eax
mov eax, edi
call fcn.004bae64
mov dl, 1
mov eax, dword [edi + 0x308]
call fcn.0042f270
mov eax, edi
call fcn.004bed38
mov eax, dword [0x4d6d04]
cmp byte [eax], 0
je 0x4bb7c7
mov eax, dword [0x4d6fd4]
fld qword [eax]
fadd qword [ebp + 8]
mov eax, dword [0x4d6fd4]
fstp qword [eax]
wait
mov eax, dword [0x4d6fd4]
fld qword [eax]
mov eax, dword [0x4d6c0c]
fcomp qword [eax]
fnstsw ax
sahf
jb 0x4bb7b6
mov eax, dword [0x4d6fd4]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], edx
mov eax, edi
call fcn.004c00d4
mov eax, dword [0x4d717c]
cmp dword [eax], 1
jne 0x4bb799
fld qword [edi + 0x3f0]
mov eax, dword [0x4d7284]
fadd qword [eax]
fstp qword [edi + 0x3f0]
wait
lea edx, [ebp - 4]
mov eax, edi
call fcn.004bf3e8
mov edx, dword [ebp - 4]
mov eax, edi
call fcn.004bbdf0
mov eax, dword [0x4d7284]
fld qword [eax]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0xc]
call fcn.0040aea0
mov ecx, dword [ebp - 0xc]
lea eax, [ebp - 8]
mov edx, 0x4bb844
call fcn.00404fa4
mov eax, dword [ebp - 8]
call fcn.004a9544
jmp 0x4bb7b6
mov ecx, dword [0x4d70d8]
mov ecx, dword [ecx]
lea eax, [ebp - 0x10]
mov edx, 0x4bb844
call fcn.00404fa4
mov eax, dword [ebp - 0x10]
call fcn.004a9544
mov eax, dword [0x4d7180]
cmp byte [eax], 0
je 0x4bb7c7
mov eax, edi
call fcn.004c0e28
mov eax, edi
call fcn.004be310
mov eax, edi
call fcn.004be81c
mov eax, edi
call fcn.004be2c4
test bl, bl
je 0x4bb7e7
mov eax, esi
call fcn.004a81e0
mov eax, dword [0x4d730c]
cmp byte [eax], 0
je 0x4bb80e
mov eax, dword [0x4d727c]
fld qword [eax]
fadd qword [ebp + 8]
add esp, 0xfffffff8
fstp qword [esp]
wait
call fcn.004d2014
mov eax, edi
call fcn.004c0a50
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4bb830
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.00404cbc
ret