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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x5136ab
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebx + 4], 0
je 0x51368f
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x572280]
cmp eax, 0xbb8
jbe 0x5134ea
mov edx, dword [0x573388]
mov edx, dword [edx]
mov eax, dword [0x573374]
mov eax, dword [eax]
call fcn.0054ef44
mov al, byte [eax + 0x3ff]
add al, 0xfc
sub al, 2
jb 0x5134e0
mov eax, ebx
call fcn.005137c8
call sub.kernel32.dll_GetTickCount_1
mov dword [0x572280], eax
cmp dword [ebx + 0xc], 0
setne byte [ebp - 5]
mov al, byte [ebp - 5]
dec al
jne 0x51350b
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov esi, dword [edx + eax*8]
mov edx, dword [ebx + 0xc]
mov edi, dword [edx + eax*8 + 4]
jmp 0x51351b
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
mov esi, dword [edx + eax*8]
mov edx, dword [ebx + 4]
mov edi, dword [edx + eax*8 + 4]
mov eax, dword [0x573998]
mov eax, dword [eax]
mov ecx, edi
mov edx, esi
call fcn.00550998
test al, al
je 0x513567
mov eax, dword [0x573998]
mov eax, dword [eax]
push dword [eax + 0x38438]
mov eax, esi
pop edx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
dec eax
jg 0x513567
mov eax, dword [0x573998]
mov eax, dword [eax]
push dword [eax + 0x3843c]
mov eax, edi
pop edx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
dec eax
jle 0x5135f9
mov eax, dword [ebx + 4]
call fcn.00485eec
mov esi, eax
mov edi, dword [ebx + 8]
sub esi, edi
dec esi
cmp esi, 0xd
jle 0x513581
mov esi, 0xd
add esi, edi
mov eax, dword [ebx + 4]
mov eax, dword [eax + esi*8]
push eax
mov eax, dword [ebx + 4]
mov eax, dword [eax + esi*8 + 4]
push eax
push 1
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
movsx ecx, word [eax + 0x66]
mov eax, dword [ebp - 4]
movsx edx, word [eax + 0x62]
mov eax, dword [0x573998]
mov eax, dword [eax]
call fcn.00550c4c
mov edx, dword [ebp - 0xc]
lea eax, [ebx + 0xc]
mov ecx, dword [0x5505fc]
call fcn.00486108
cmp dword [ebx + 0xc], 0
jne 0x5135e1
mov eax, ebx
call fcn.00513278
mov edx, 0x5136c4
mov eax, ebx
call fcn.00513250
jmp 0x51368f
mov dword [ebx + 8], esi
mov eax, 1
mov dword [ebx + 0x10], eax
mov edx, dword [ebx + 0xc]
mov esi, dword [edx + eax*8]
mov edx, dword [ebx + 0xc]
mov edi, dword [edx + eax*8 + 4]
push edi
mov eax, dword [ebp - 4]
mov dx, word [eax + 0x66]
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x62]
mov ecx, esi
call fcn.00507db8
movzx eax, ax
mov esi, eax
cmp esi, 8
je 0x51368f
mov eax, dword [ebp - 4]
cmp esi, dword [eax + 0x434]
je 0x513632
mov ecx, esi
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0051378c
jmp 0x51368f
mov ecx, esi
mov edx, dword [ebp - 4]
mov eax, ebx
call fcn.0051370c
test al, al
je 0x51368f
mov al, byte [ebp - 5]
sub al, 1
jb 0x51366b
jne 0x51368f
inc dword [ebx + 0x10]
mov eax, dword [ebx + 0xc]
call fcn.00485eec
cmp eax, dword [ebx + 0x10]
jge 0x51368f
lea eax, [ebx + 0xc]
mov edx, dword [0x5505fc]
call fcn.004860cc
jmp 0x51368f
inc dword [ebx + 8]
mov eax, dword [ebx + 4]
call fcn.00485eec
sub eax, dword [ebx + 8]
dec eax
jg 0x51368f
mov eax, ebx
call fcn.00513278
mov edx, 0x5136ec
mov eax, ebx
call fcn.00513250
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5136b2
lea eax, [ebp - 0xc]
mov edx, dword [0x5505fc]
call fcn.004860cc
ret