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

Disassembly:
mov eax, 0x2009f25b
call fcn.2007d394
sub esp, 0xf8
mov eax, dword [0x200cc84c]
push ebx
xor eax, ebp
push esi
mov ebx, ecx
mov dword [ebp - 0x10], eax
push edi
mov dword [ebp - 0xc8], ebx
xor edi, edi
mov dword [ebp - 4], edi
cmp dword [ebx + 0x192e4], 1
jne 0x2004bc74
cmp dword [ebp + 8], edi
je 0x2004bc74
lea esi, [ebx + 0x10c18]
inc dword [esi + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebp + 8]
push edi
call fcn.20021841
push esi
mov dword [ebp - 0xd4], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xd4]
dec dword [esi + 0x18]
cmp ecx, dword [eax + 0x7c]
jge 0x2004bc74
lea ecx, [ebx + 0x688]
push edi
call fcn.2001c76a
push eax
lea ecx, [ebx + 0x688]
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xcc], edi
call fcn.2001bb16
mov edi, eax
test edi, edi
je 0x2004bc74
mov eax, dword [ebp - 0xc4]
mov ecx, ebx
mov dword [ebp - 0xbc], eax
call fcn.2003c635
cmp eax, 0x12
jle 0x2004b686
push 0x12
pop eax
jmp 0x2004b68b
cmp eax, 8
jl 0x2004b698
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0xdc], eax
jmp 0x2004b6a2
mov dword [ebp - 0xdc], 4
cmp dword [ebx + 0x548], 0
je 0x2004b6b5
mov dword [ebp - 0xdc], 0xf4240
lea ecx, [ebp - 0xac]
call fcn.2003ab13
mov byte [ebp - 4], 1
push 0x80
lea ecx, [ebp - 0xac]
call fcn.2003ab2e
push 1
lea ecx, [ebp - 0xac]
call fcn.2003ac10
and dword [ebp - 0xc0], 0
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x20]
cmp dword [ebp - 0xbc], eax
jne 0x2004b707
add ecx, 0x28
push ecx
lea ecx, [ebp - 0xac]
call fcn.2003b6f4
jmp 0x2004b776
jbe 0x2004b776
push esi
lea ecx, [ebp - 0xd4]
call fcn.200011c0
mov byte [ebp - 4], 2
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0xbc]
push eax
lea eax, [ebp - 0xe0]
push eax
lea ecx, [ebx + 0x23c]
call fcn.2003e64a
mov ebx, dword [ebx + 0x240]
mov eax, dword [ebp - 0xe0]
cmp eax, ebx
je 0x2004ba09
add eax, 0x10
push eax
lea ecx, [ebp - 0xac]
call fcn.2003b6f4
mov byte [ebp - 4], 1
mov ebx, dword [ebp - 0xd4]
test ebx, ebx
je 0x2004b770
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
dec dword [ebx + 0x18]
mov ebx, dword [ebp - 0xc8]
lea ecx, [edi + 0x40]
call fcn.2003acb4
fstp dword [ebp - 0xb8]
mov eax, dword [edi + 0x10]
cmp eax, 0x4b000
mov dword [ebp - 0xb0], 4
jae 0x2004b7a2
mov dword [ebp - 0xb0], 5
cmp eax, 0x20800
jae 0x2004b7af
inc dword [ebp - 0xb0]
cmp eax, 0x16800
jae 0x2004b7bc
inc dword [ebp - 0xb0]
lea ecx, [ebx + 0x194f0]
call fcn.20076616
fld dword [ebp - 0xb8]
fcomp dword [0x200a9ae8]
mov dword [ebp - 0xb4], eax
fnstsw ax
test ah, 0x41
jne 0x2004b7ed
lea ecx, [ebx + 0x194f0]
call fcn.2007661e
jmp 0x2004b86b
fld dword [ebp - 0xb8]
fcomp dword [0x200a9ae4]
fnstsw ax
test ah, 0x41
jne 0x2004b80d
lea ecx, [ebx + 0x194f0]
call fcn.20076626
jmp 0x2004b86b
fld dword [ebp - 0xb8]
fcomp dword [0x200a9ae0]
fnstsw ax
test ah, 0x41
jne 0x2004b82d
lea ecx, [ebx + 0x194f0]
call fcn.2007662e
jmp 0x2004b86b
fld dword [ebp - 0xb8]
fcomp dword [0x200a9adc]
fnstsw ax
test ah, 0x41
jne 0x2004b84d
lea ecx, [ebx + 0x194f0]
call fcn.20076636
jmp 0x2004b86b
fld dword [ebp - 0xb8]
fcomp dword [0x200a9ad8]
fnstsw ax
test ah, 0x41
jne 0x2004b871
lea ecx, [ebx + 0x194f0]
call fcn.2007663e
mov dword [ebp - 0xb4], eax
mov edx, dword [ebp - 0xbc]
cmp dword [ebp - 0xc4], edx
jne 0x2004b932
mov eax, dword [ebp + 8]
xor ecx, ecx
cmp byte [eax + 0xc0], cl
je 0x2004b899
cmp byte [eax + 0xbf], 3
jne 0x2004b89c
xor ecx, ecx
inc ecx
cmp dword [ebx + 0x548], 0
je 0x2004b8e8
fld dword [ebp - 0xb8]
fcomp dword [0x200a9afc]
fnstsw ax
test ah, 5
jnp 0x2004b8ce
test ecx, ecx
jne 0x2004b8ce
mov eax, dword [ebp - 0xc0]
cmp eax, dword [ebp - 0xb0]
jl 0x2004b9c1
push dword [ebp - 0xb4]
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xd0]
push eax
push edx
jmp 0x2004b9ab
test ecx, ecx
jne 0x2004b991
lea ecx, [ebx + 0x194f0]
call fcn.20076646
test eax, eax
mov dword [ebp - 0x100], eax
fild dword [ebp - 0x100]
jge 0x2004b911
fadd dword [0x200a6f40]
fcomp dword [ebp - 0xb8]
fnstsw ax
test ah, 0x41
je 0x2004b991
mov eax, dword [ebp + 8]
movzx eax, word [eax + 0x1e8]
cmp eax, dword [ebp - 0xdc]
jle 0x2004b991
jmp 0x2004b983
lea ecx, [ebx + 0x194f0]
call fcn.2007664b
test eax, eax
mov dword [ebp - 0x100], eax
fild dword [ebp - 0x100]
jge 0x2004b953
fadd dword [0x200a6f40]
fcomp dword [ebp - 0xb8]
fnstsw ax
test ah, 0x41
je 0x2004b991
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x88]
cmp eax, 0xc350
jbe 0x2004b983
lea ecx, [ebx + 0x688]
call fcn.2001b022
cmp eax, 5
ja 0x2004b991
mov eax, dword [ebp - 0xb0]
cmp dword [ebp - 0xc0], eax
jle 0x2004b9d3
push dword [ebp - 0xb4]
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xd0]
push eax
push dword [ebp - 0xbc]
lea eax, [ebp - 0xac]
lea ecx, [ebx + 0x688]
push eax
call fcn.2001f281
test eax, eax
jne 0x2004ba2a
mov eax, dword [ebp - 0xb0]
cmp dword [ebp - 0xc0], eax
jg 0x2004bc65
push dword [ebp - 0xbc]
lea edi, [ebx + 0x688]
mov ecx, edi
call fcn.2001bf2f
test eax, eax
mov dword [ebp - 0xbc], eax
je 0x2004bc65
push eax
mov ecx, edi
call fcn.2001bb16
inc dword [ebp - 0xc0]
mov edi, eax
jmp 0x2004b6e8
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0xd4]
test esi, esi
je 0x2004bc65
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
dec dword [esi + 0x18]
jmp 0x2004bc65
test edi, edi
je 0x2004bc65
push 0x64
lea eax, [ebp - 0x74]
push eax
lea ecx, [ebp - 0xfc]
call fcn.200030b0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0xf8]
mov dword [ebp - 0xf4], eax
push 0
lea ecx, [ebp - 0xfc]
mov byte [eax], 0
call fcn.200012d7
push 0x43
lea ecx, [ebp - 0xfc]
call fcn.20001294
push 0
lea ecx, [ebp - 0xfc]
call fcn.200012d7
push 0x8b
lea ecx, [ebp - 0xfc]
call fcn.20001294
mov ebx, dword [ebp - 0xf4]
push 0
lea ecx, [ebp - 0xfc]
call fcn.200012d7
mov eax, dword [ebp - 0xf4]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xc8]
push dword [eax + 0x10b14]
lea ecx, [ebp - 0xfc]
call fcn.2000133b
mov eax, dword [ebp + 8]
push dword [eax + 0x24c]
lea ecx, [ebp - 0xfc]
call fcn.2000133b
mov eax, dword [ebp + 8]
push dword [eax + 0x248]
lea ecx, [ebp - 0xfc]
call fcn.2000133b
mov ecx, dword [ebp - 0xc8]
add ecx, 0x688
call fcn.2001a42e
push dword [edi + 0x18]
lea ecx, [ebp - 0xfc]
mov dword [ebp - 0xc4], eax
call fcn.2000133b
push dword [ebp - 0xc4]
lea ecx, [ebp - 0xfc]
call fcn.2000133b
push dword [ebp - 0xd0]
lea ecx, [ebp - 0xfc]
call fcn.2000133b
push dword [ebp - 0xcc]
lea ecx, [ebp - 0xfc]
call fcn.2000133b
mov eax, dword [ebp - 0xf4]
sub eax, dword [ebp - 0xd4]
push 0x18
push eax
push dword [ebp - 0xd4]
call fcn.2001762c
mov word [ebx], ax
mov ecx, dword [ebp - 0xf8]
mov eax, dword [ebp - 0xf4]
sub eax, ecx
lea edx, [eax - 4]
mov word [ecx], dx
movzx ecx, ax
mov eax, dword [ebp + 8]
xor edx, edx
mov dx, word [eax + 0xb8]
add esp, 0xc
mov dword [ebp - 0xe0], ecx
push edx
push dword [eax + 0xb4]
push ecx
mov ecx, dword [ebp - 0xc8]
push dword [ebp - 0xf8]
add ecx, 0x10b5c
call fcn.2007625c
test eax, eax
je 0x2004bc56
mov eax, dword [edi + 0x18]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x24], eax
mov eax, dword [ebp + 8]
inc dword [eax + 0x78]
mov ebx, dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebx + 0x220], eax
inc dword [edi + 0xa8]
inc dword [esi + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0xc4]
mov dword [ebp - 0x100], eax
lea eax, [ebp - 0x104]
mov dword [ebp - 0x104], ecx
mov ecx, dword [ebp + 8]
push eax
lea eax, [ebp - 0xd8]
push eax
add ecx, 0x6c
call fcn.2001d3d6
mov eax, dword [ebp + 8]
inc byte [eax + 0x81]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push dword [ebp - 0xe0]
mov ecx, dword [ebp + 8]
dec dword [esi + 0x18]
call fcn.20020954
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xfc]
call fcn.200030f4
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xac]
call fcn.2003ab27
xor esi, esi
inc esi
jmp 0x2004bc76
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xfc]
call fcn.200030f4
mov byte [ebp - 4], 0
lea ecx, [ebp - 0xac]
call fcn.2003ab27
xor esi, esi
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.20001efb
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.2007c9ae
leave
ret 8