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

Disassembly:
push 0xffffffffffffffff
push 0x5508a8
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push ebp
push esi
push edi
mov eax, dword [0x57f7c4]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x58]
mov esi, dword [ebp + 0x1810]
xor ebx, ebx
mov dword [esp + 0x58], esi
cmp esi, ebx
je 0x48c9b1
lea edi, [esi + 0x5cc]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [ebp + 0x1810], ebx
jne 0x48c9b1
push edi
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call edi
mov dword [esp + 0x58], ebx
mov esi, ebx
jmp 0x48c9b7
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov dword [esp + 0x50], ebx
mov ecx, dword [ebp + 0x1810]
cmp ecx, ebx
jne 0x48c9cc
cmp esi, ebx
jmp 0x48ccf9
cmp dword [ebp + 0x1800], ebx
jne 0x48c9db
cmp esi, ebx
jmp 0x48ccf9
mov edx, dword [esp + 0x5c]
movzx eax, word [edx]
sub eax, 0x2501
je 0x48cd1a
sub eax, 1
jne 0x48ccf7
mov edi, 4
cmp dword [ebp + 0x1804], edi
jle 0x48ca1d
cmp esi, ebx
je 0x48cd04
add esi, 0x5cc
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x48cd04
cmp dword [ecx + 0x4b4], 2
jne 0x48ca03
mov eax, dword [ecx + 0x4b8]
mov ecx, dword [ebp + 0xe0]
push eax
call fcn.0041c6e0
mov ebx, eax
test ebx, ebx
je 0x48ccf1
cmp dword [ebx + 0x1800], 0
je 0x48ccf1
cmp dword [ebx + 0x1804], edi
jg 0x48ccf1
mov edi, ebx
lea esi, [esp + 0x14]
call fcn.00431eb0
xor esi, esi
mov byte [esp + 0x50], 2
cmp dword [ebx + 0x1810], esi
je 0x48ccd9
mov ecx, dword [esp + 0x5c]
cmp byte [ecx + 2], 0
mov edx, dword [ebp + 0x1810]
jne 0x48cb21
mov dword [edx + 0x4b4], esi
mov eax, dword [ebp + 0x1810]
mov dword [eax + 0x4b8], esi
mov ecx, dword [ebx + 0x1810]
mov dword [ecx + 0x4b4], esi
mov edx, dword [ebx + 0x1810]
mov dword [edx + 0x4b8], esi
mov dword [ebp + 0x55a4], esi
mov dword [ebx + 0x55a4], esi
mov eax, dword [ebp + 0x1810]
mov dword [eax + 0x4c0], esi
mov ecx, dword [ebx + 0x1810]
mov dword [ecx + 0x4c0], esi
mov eax, dword [ebp + 0xdc]
push 7
lea ecx, [esp + 0x1c]
mov edx, 0x2502
push ecx
mov ecx, ebx
mov word [esp + 0x20], dx
mov byte [esp + 0x22], 0
mov dword [esp + 0x23], eax
call fcn.004ed0e0
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x48cb16
add eax, 0x5cc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x58]
cmp eax, esi
jmp 0x48ce99
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edx + 0x4b4], 3
call edi
add eax, 0x1388
mov dword [ebp + 0x55b4], eax
mov eax, dword [ebx + 0x1810]
mov dword [eax + 0x4b4], 3
call edi
add eax, 0x1388
mov dword [ebx + 0x55b4], eax
fld dword [ebx + 0xd0]
fadd dword [ebp + 0xd0]
mov eax, dword [ebp + 0x1810]
add eax, 0x4c4
fstp dword [esp + 0x20]
fld dword [ebp + 0xd4]
fadd dword [ebx + 0xd4]
fstp dword [esp + 0x24]
fld dword [ebp + 0xd8]
fadd dword [ebx + 0xd8]
fstp dword [esp + 0x28]
fld dword [esp + 0x20]
fld qword [0x573f80]
fmul st(1), st(0)
fxch st(1)
fstp dword [esp + 0x2c]
fld dword [esp + 0x24]
fmul st(1)
fstp dword [esp + 0x30]
fmul dword [esp + 0x28]
fstp dword [esp + 0x34]
fld dword [esp + 0x2c]
fst dword [eax]
fld dword [esp + 0x30]
fstp dword [eax + 4]
fld dword [esp + 0x34]
fstp dword [eax + 8]
mov ecx, dword [ebx + 0x1810]
add ecx, 0x4c4
fstp dword [ecx]
fld dword [eax + 4]
fstp dword [ecx + 4]
fld dword [eax + 8]
fstp dword [ecx + 8]
movzx ecx, word [ebp + 0x160]
mov edx, dword [ebp + 0x1810]
mov dword [edx + 0x4d0], ecx
mov eax, dword [ebp + 0x1810]
mov edx, dword [eax + 0x4d0]
mov ecx, dword [ebx + 0x1810]
mov dword [ecx + 0x4d0], edx
mov eax, dword [ebp + 0x1810]
mov ecx, dword [ebx + 0x1800]
mov dword [eax + 0x4bc], ecx
mov edx, dword [ebx + 0x1810]
mov eax, dword [ebp + 0x1800]
mov dword [edx + 0x4bc], eax
mov edi, dword [ebp + 0x1810]
call fcn.0043edf0
mov edi, dword [ebx + 0x1810]
call fcn.0043edf0
mov edx, dword [ebp + 0xdc]
mov ecx, 0x2502
push 7
lea eax, [esp + 0x1c]
mov word [esp + 0x1c], cx
push eax
mov ecx, ebx
mov byte [esp + 0x22], 1
mov dword [esp + 0x23], edx
call fcn.004ed0e0
mov edx, dword [ebp + 0x1810]
mov eax, dword [ebx + 0x1810]
mov ecx, 0x2503
mov word [esp + 0x38], cx
fld dword [edx + 0x4c4]
fstp dword [esp + 0x3a]
fld dword [edx + 0x4cc]
fstp dword [esp + 0x3e]
mov ecx, dword [eax + 8]
mov dword [esp + 0x42], ecx
mov eax, 0xe
lea ecx, [esp + 0x38]
call fcn.0043f2d0
mov edx, dword [ebp + 0x1810]
mov eax, dword [edx + 8]
mov edx, dword [ebx + 0x1810]
mov dword [esp + 0x42], eax
mov eax, 0xe
lea ecx, [esp + 0x38]
call fcn.0043f2d0
jmp 0x48cb02
mov eax, dword [esp + 0x14]
cmp eax, esi
je 0x48cced
add eax, 0x5cc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [esp + 0x58]
mov edi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test esi, esi
je 0x48cd04
add esi, 0x5cc
push esi
call edi
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 8
mov ebx, 4
cmp dword [ebp + 0x1804], ebx
jg 0x48ccf7
cmp dword [ecx + 0x4b4], 0
jne 0x48ccf7
cmp dword [ebp + 0x558c], 0
jne 0x48ccf7
mov ecx, dword [edx + 2]
push ecx
mov ecx, dword [ebp + 0xe0]
call fcn.0041c6e0
mov edi, eax
test edi, edi
je 0x48cecd
mov eax, dword [edi + 0x1800]
test eax, eax
je 0x48cecd
cmp dword [edi + 0x1804], ebx
jg 0x48cecd
cmp eax, dword [ebp + 0x1800]
je 0x48cecd
cmp dword [edi + 0x558c], 0
jne 0x48cecd
lea esi, [esp + 0x14]
call fcn.00431eb0
mov byte [esp + 0x50], 1
mov eax, dword [edi + 0x1810]
test eax, eax
je 0x48ceb0
cmp dword [eax + 0x4b4], 0
jne 0x48ceb0
mov edx, dword [ebp + 0x1810]
mov dword [edx + 0x4b4], 1
mov eax, dword [ebp + 0x1810]
mov ecx, dword [edi + 0xdc]
mov dword [eax + 0x4b8], ecx
mov edx, dword [edi + 0x1810]
mov dword [edx + 0x4b4], 2
mov eax, dword [edi + 0x1810]
mov ecx, dword [ebp + 0xdc]
mov dword [eax + 0x4b8], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x2710
mov dword [ebp + 0x55b4], eax
mov edx, dword [edi + 0x1800]
mov dword [edi + 0x55b4], eax
mov eax, dword [ebp + 0x1800]
mov dword [ebp + 0x55a4], edx
mov dword [edi + 0x55a4], eax
mov ecx, dword [ebp + 0x1810]
mov edx, dword [ebp + 0xdc]
mov dword [ecx + 0x4c0], edx
mov eax, dword [edi + 0x1810]
mov ecx, dword [edi + 0xdc]
mov dword [eax + 0x4c0], ecx
mov ecx, dword [edi + 0xdc]
mov eax, dword [ebp + 0xdc]
mov edx, 0x2501
mov word [esp + 0x20], dx
push 0xa
lea edx, [esp + 0x24]
mov dword [esp + 0x2a], ecx
push edx
mov ecx, ebp
mov dword [esp + 0x2a], eax
call fcn.004ed0e0
push 0xa
lea eax, [esp + 0x24]
push eax
mov ecx, edi
call fcn.004ed0e0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x48ce93
add eax, 0x5cc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x58]
test eax, eax
je 0x48cd04
add eax, 0x5cc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x48cd04
mov byte [esp + 0x50], 0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x48cec9
add eax, 0x5cc
push eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 2]
mov ecx, 0x2502
mov word [esp + 0x18], cx
push 7
lea ecx, [esp + 0x1c]
push ecx
mov ecx, ebp
mov byte [esp + 0x22], 2
mov dword [esp + 0x23], eax
call fcn.004ed0e0
jmp 0x48ccf1