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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x51ff3e
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
xor eax, eax
push ebp
push 0x51ff26
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x44], 0
je 0x51ff1c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0
jbe 0x51ff1c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x48], 0x10000
jae 0x51ff1c
xor ecx, ecx
mov dl, 1
mov eax, dword [0x501c4c]
call fcn.00503534
mov dword [ebp - 0xc], eax
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.00503620
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov dword [eax + 0x54], edx
mov dword [eax + 0x50], 0x51f750
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov dword [eax + 0x8c], edx
mov dword [eax + 0x88], 0x51fa6c
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov dword [eax + 0x7c], edx
mov dword [eax + 0x78], 0x51f754
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 4]
mov dword [eax + 0x64], edx
mov dword [eax + 0x60], 0x51fc84
mov byte [ebp - 6], 0
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x54], eax
xor eax, eax
push ebp
push 0x51fe15
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0050320c
mov eax, dword [ebp - 4]
mov byte [eax + 0x50], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x51], 0
mov eax, dword [ebp - 4]
mov byte [eax + 0x58], 0
mov eax, dword [ebp - 4]
add eax, 0x4c
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x44]
call fcn.00404660
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c]
mov eax, dword [ebp - 0xc]
call fcn.0050325c
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x48]
mov eax, dword [ebp - 0xc]
call fcn.0050335c
mov dl, 1
mov eax, dword [ebp - 0xc]
call fcn.0050320c
call sub.kernel32.dll_GetTickCount_1
mov ebx, eax
push 0xa
call sub.kernel32.dll_Sleep_1
mov eax, dword [0x5295c0]
mov eax, dword [eax]
call fcn.00458274
mov eax, dword [ebp - 4]
cmp byte [eax + 0x50], 0
jne 0x51fe07
mov eax, dword [ebp - 4]
cmp byte [eax + 0x51], 0
jne 0x51fe07
call sub.kernel32.dll_GetTickCount_1
xor edx, edx
push edx
push eax
mov eax, ebx
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
cmp edx, 0
jne 0x51fe05
cmp eax, 0x2710
jb 0x51fdbd
jmp 0x51fe07
jl 0x51fdbd
mov byte [ebp - 6], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51fe26
mov eax, dword [ebp - 4]
cmp byte [eax + 0x58], 0
je 0x51fe6d
call sub.kernel32.dll_GetTickCount_1
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
cmp edx, 0
jne 0x51fe56
cmp eax, 0x1f40
jae 0x51fe6d
jmp 0x51fe58
jge 0x51fe6d
mov eax, dword [ebp - 4]
cmp byte [eax + 0x50], 0
jne 0x51fe6d
push 0xa
call sub.kernel32.dll_Sleep_1
jmp 0x51fd52
cmp byte [ebp - 6], 0
jne 0x51fead
call sub.kernel32.dll_GetTickCount_1
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x54]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
cmp edx, 0
jne 0x51fe9a
cmp eax, 0x1f40
jae 0x51fead
jmp 0x51fe9c
jge 0x51fead
mov byte [ebp - 6], 1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x50], 0
je 0x51fd52
mov eax, dword [0x5295c0]
mov eax, dword [eax]
call fcn.00458274
cmp dword [ebp - 0xc], 0
je 0x51ff1c
xor eax, eax
push ebp
push 0x51fee1
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
mov eax, dword [ebp - 0xc]
call fcn.0050320c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51feeb
push 0x64
call sub.kernel32.dll_Sleep_1
xor eax, eax
push ebp
push 0x51ff12
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
call fcn.004037dc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51ff1c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x51ff30
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51ff45
ret