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

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push ebx
push esi
push edi
mov ebx, 0x5d6fc8
xor eax, eax
push ebp
push 0x54debc
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x5d8440], 0
je 0x54de9e
mov eax, dword [0x5d8440]
cmp byte [eax + 0x78], 0
jne 0x54de9e
cmp byte [0x5d6ba0], 0
jne 0x54de9e
cmp byte [0x5d8849], 0
jne 0x54de9e
cmp byte [0x5d884a], 0
jne 0x54de9e
cmp byte [0x5d6b91], 0
jne 0x54de9e
mov eax, dword [ebx]
mov eax, dword [eax + 0x87c]
mov edx, 0x54ded4
call fcn.00404820
jne 0x54d922
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5d6d94]
cmp eax, 0x2710
jbe 0x54d922
cmp dword [0x5d6950], 3
jge 0x54d922
mov edx, 1
mov eax, dword [ebx]
call fcn.005a8ac8
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6d94], eax
inc dword [0x5d6950]
mov eax, dword [ebx]
mov eax, dword [eax + 0x87c]
mov edx, 0x54dee4
call fcn.00404820
jne 0x54d95e
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5d6d94]
cmp eax, 0x2710
jbe 0x54d95e
mov edx, 1
mov eax, dword [ebx]
call fcn.005a8ac8
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6d94], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x87c]
mov edx, 0x54def8
call fcn.00404820
jne 0x54d99a
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5d6d94]
cmp eax, 0x2710
jbe 0x54d99a
mov edx, 1
mov eax, dword [ebx]
call fcn.005a8ac8
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6d94], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x860]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x54d9ba
mov eax, dword [ebx]
cmp byte [eax + 0x86c], 0
je 0x54de9e
mov al, byte [0x5d8849]
or al, byte [0x5d884a]
jne 0x54de9e
mov eax, dword [ebx]
cmp dword [eax + 0x870], 0xffffffff
jne 0x54da1f
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5d6f64]
xor edx, edx
push edx
push eax
mov eax, dword [0x5d6f68]
cdq
cmp edx, dword [esp + 4]
jne 0x54d9fa
cmp eax, dword [esp]
pop edx
pop eax
jae 0x54da1f
jmp 0x54d9fe
pop edx
pop eax
jge 0x54da1f
mov eax, dword [ebx]
cmp byte [eax + 0x89c], 0
je 0x54da1f
mov edx, 1
mov eax, dword [ebx]
call fcn.005a8ac8
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6f64], eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x87c]
mov edx, 0x54df0c
call fcn.00404820
jne 0x54dae4
mov eax, dword [ebx]
mov edx, dword [eax + 0x880]
mov eax, dword [0x5d70f0]
call fcn.005b4df8
mov esi, eax
test esi, esi
je 0x54dae4
mov eax, dword [0x5d8440]
cmp byte [eax + 0x119], 0
je 0x54daa0
mov eax, dword [0x5d8440]
cmp byte [eax + 0x119], 0
je 0x54dae4
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x122]
push eax
push 3
mov eax, dword [0x5d8440]
movzx ecx, word [eax + 0x120]
mov eax, dword [0x5d70ac]
mov edx, dword [eax + 0x7c]
mov eax, dword [0x5d6fcc]
call fcn.005c1024
test eax, eax
jne 0x54dae4
mov eax, dword [0x5d70f0]
mov dword [eax + 0x1b0], 0xffffffff
mov eax, dword [0x5d70f0]
mov dword [eax + 0x1b4], 0xffffffff
xor edx, edx
mov eax, dword [0x5d8440]
call fcn.005cf318
mov eax, dword [ebx]
mov byte [eax + 0x894], 1
mov eax, dword [ebx]
add eax, 0x87c
call fcn.00404414
jmp 0x54de9e
mov eax, dword [ebx]
cmp byte [eax + 0x83c], 0
je 0x54db52
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebx]
sub eax, dword [edx + 0x840]
xor edx, edx
push edx
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x844]
cdq
cmp edx, dword [esp + 4]
jne 0x54db18
cmp eax, dword [esp]
pop edx
pop eax
jae 0x54db52
jmp 0x54db1c
pop edx
pop eax
jge 0x54db52
mov eax, dword [ebx]
cmp byte [eax + 0x89c], 0
je 0x54db52
mov eax, dword [ebx]
mov byte [eax + 0x83c], 0
mov eax, dword [0x5d70a8]
mov edx, eax
call fcn.00557694
jmp 0x54dba0
cmp byte [0x5d6f70], 0
jne 0x54db6f
mov eax, dword [ebx]
mov eax, dword [eax + 0x87c]
mov edx, 0x54df40
call fcn.00404820
jne 0x54dba0
mov eax, dword [ebx]
mov eax, dword [eax + 0x860]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x54dba0
mov eax, dword [ebx]
cmp byte [eax + 0x89c], 0
je 0x54dba0
mov eax, dword [ebx]
mov edx, dword [eax + 0x864]
mov eax, dword [ebx]
mov eax, dword [eax + 0x860]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebx]
mov eax, dword [eax + 0x87c]
mov edx, 0x54df54
call fcn.00404820
jne 0x54dbd4
mov eax, dword [0x5d70ac]
mov eax, dword [eax + 0x7c]
mov edx, dword [ebx]
mov edx, dword [edx + 0x880]
call fcn.00404820
jne 0x54dbd4
mov eax, dword [ebx]
mov byte [eax + 0x894], 1
mov eax, dword [ebx]
mov eax, dword [eax + 0x87c]
mov edx, 0x54df6c
call fcn.00404820
jne 0x54dc00
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebx]
cmp eax, dword [edx + 0x898]
jb 0x54dc00
mov eax, dword [ebx]
mov byte [eax + 0x894], 1
mov eax, dword [ebx]
cmp byte [eax + 0x86d], 0
je 0x54dc4a
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebx]
sub eax, dword [edx + 0x848]
xor edx, edx
push edx
push eax
mov eax, dword [ebx]
mov eax, dword [eax + 0x84c]
cdq
cmp edx, dword [esp + 4]
jne 0x54dc34
cmp eax, dword [esp]
pop edx
pop eax
jae 0x54dc4a
jmp 0x54dc38
pop edx
pop eax
jge 0x54dc4a
mov eax, dword [ebx]
mov byte [eax + 0x894], 1
mov eax, dword [ebx]
mov byte [eax + 0x86d], 0
mov eax, dword [ebx]
cmp byte [eax + 0x86c], 0
je 0x54dca3
mov eax, dword [ebx]
cmp byte [eax + 0x89c], 0
je 0x54dca3
mov eax, dword [0x5d70f0]
cmp dword [eax + 0x1b0], 0xffffffff
jne 0x54dca3
mov eax, dword [ebx]
mov edx, dword [eax + 0x87c]
mov eax, 0x54df0c
call fcn.00404a18
test eax, eax
jg 0x54dc9a
mov eax, dword [ebx]
mov edx, dword [eax + 0x87c]
mov eax, 0x54df7c
call fcn.00404a18
test eax, eax
jle 0x54dca3
mov eax, dword [ebx]
mov byte [eax + 0x894], 1
mov eax, dword [ebx]
cmp byte [eax + 0x86c], 0
je 0x54dce1
mov eax, dword [ebx]
cmp byte [eax + 0x89c], 0
je 0x54dce1
mov eax, dword [ebx]
mov edx, dword [eax + 0x87c]
mov eax, 0x54df8c
call fcn.00404a18
test eax, eax
jle 0x54dce1
cmp dword [0x5d8784], 0
jne 0x54dce1
mov eax, dword [ebx]
mov byte [eax + 0x894], 1
mov eax, dword [ebx]
cmp byte [eax + 0x894], 0
je 0x54de9e
xor eax, eax
mov dword [0x5d6950], eax
mov eax, dword [ebx]
mov byte [eax + 0x83c], 0
mov eax, dword [ebx]
mov byte [eax + 0x86d], 0
mov eax, dword [ebx]
mov edx, dword [eax + 0x87c]
mov eax, 0x54df6c
call fcn.00404a18
test eax, eax
jne 0x54dda5
mov eax, dword [ebx]
mov edx, dword [eax + 0x87c]
mov eax, 0x54dfa0
call fcn.00404a18
test eax, eax
jne 0x54dda5
mov eax, dword [ebx]
mov edx, dword [eax + 0x87c]
mov eax, 0x54dfb0
call fcn.00404a18
test eax, eax
jne 0x54dda5
mov eax, dword [ebx]
mov edx, dword [eax + 0x87c]
mov eax, 0x54dfc0
call fcn.00404a18
test eax, eax
jne 0x54dda5
mov eax, dword [ebx]
mov edx, dword [eax + 0x87c]
mov eax, 0x54dfd0
call fcn.00404a18
test eax, eax
jne 0x54dda5
mov eax, dword [ebx]
mov edx, dword [eax + 0x87c]
mov eax, 0x54dfe0
call fcn.00404a18
test eax, eax
jne 0x54dda5
mov eax, dword [ebx]
add eax, 0x878
mov edx, dword [ebx]
mov edx, dword [edx + 0x87c]
call fcn.00404468
xor edi, edi
lea edx, [ebp - 4]
mov eax, dword [ebx]
call fcn.005a48b8
mov eax, dword [ebx]
mov eax, dword [eax + 0x860]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
cmp dword [ebp - 4], 0
je 0x54dde1
mov eax, dword [ebx]
add eax, 0x87c
call fcn.00404414
push 0
mov cl, 1
mov edx, dword [ebp - 4]
mov eax, dword [ebx]
call fcn.0059dcbc
inc edi
test esi, esi
jne 0x54de53
mov eax, dword [ebx]
mov eax, dword [eax + 0x860]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jle 0x54de53
mov eax, dword [ebx]
cmp byte [eax + 0x859], 0
je 0x54de53
mov eax, dword [ebx]
mov eax, dword [eax + 0x860]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x54de9e
inc esi
mov dword [ebp - 8], 0
push 0xffffff
lea ecx, [ebp - 0xc]
mov eax, dword [ebx]
mov eax, dword [eax + 0x860]
mov edx, dword [ebp - 8]
mov edi, dword [eax]
call dword [edi + 0xc]
mov edx, dword [ebp - 0xc]
mov ecx, 0xff0000
mov eax, dword [0x5d70a4]
call fcn.005b2b94
inc dword [ebp - 8]
dec esi
jne 0x54de21
jmp 0x54de9e
mov eax, dword [ebx]
cmp byte [eax + 0x894], 0
je 0x54de9e
cmp dword [ebp - 4], 0
je 0x54de9e
mov eax, dword [ebx]
cmp byte [eax + 0x859], 0
jne 0x54de9e
cmp edi, dword [0x5d683c]
jg 0x54de9e
mov eax, dword [ebx]
mov edx, dword [eax + 0x87c]
mov eax, 0x54dff0
call fcn.00404a18
test eax, eax
jg 0x54de9e
mov eax, dword [0x5d3a50]
mov eax, dword [eax]
call fcn.0048536c
jmp 0x54dda7
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x54dec3
lea eax, [ebp - 0xc]
call fcn.00404414
lea eax, [ebp - 4]
call fcn.00404414
ret