Function at 0x54518c
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], ecx
mov edi, edx
mov esi, eax
mov eax, dword [ebp + 0xc]
call fcn.004048c4
xor eax, eax
push ebp
push 0x545519
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [ebp + 0xc]
mov eax, esi
call fcn.005455fc
mov ebx, eax
test ebx, ebx
jne 0x5451ed
push 0x545534
push dword [ebp + 0xc]
push 0x54554c
mov eax, 0x5d6ee8
mov edx, 3
call fcn.00404794
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6eec], eax
jmp 0x545503
movzx eax, word [ebx + 0x1a]
xor edx, edx
mov dl, byte [ebx + 0x3c]
add eax, edx
mov edx, dword [0x5d8440]
movzx edx, word [edx + 0x9a]
cmp eax, edx
jbe 0x545213
cmp byte [ebx + 0x17], 0
jne 0x5454ea
cmp byte [ebx + 0x17], 0
jne 0x545332
cmp word [ebx + 8], 0x1a
jne 0x54523a
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5d8884]
cmp eax, 0x2710
jb 0x545503
cmp word [ebx + 8], 0x1b
jne 0x545257
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5d8888]
cmp eax, 0xbb8
jb 0x545503
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5d8880]
cmp eax, 0x1f4
jbe 0x545503
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d8880], eax
xor eax, eax
mov dword [0x5d70b8], eax
xor eax, eax
mov dword [0x5d6a14], eax
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x122]
push eax
movzx eax, word [ebx + 8]
push eax
push 0
mov eax, dword [0x5d8440]
mov eax, dword [eax + 0x60]
push eax
push 0
push 0
mov eax, dword [0x5d8440]
movzx ecx, word [eax + 0x120]
mov dx, 0xbc9
mov eax, dword [0x5d8440]
call fcn.005cc4e8
cmp dword [ebp + 8], 0
je 0x54530a
mov eax, dword [ebp + 8]
cmp eax, dword [0x5d8440]
je 0x54530a
mov eax, dword [ebp + 8]
movzx eax, word [eax + 0x122]
push eax
mov eax, dword [ebp + 8]
movzx ecx, word [eax + 0x120]
mov eax, dword [0x5d8440]
movzx edx, word [eax + 0x122]
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x120]
call fcn.005c420c
and eax, 0xff
jmp 0x545316
mov eax, dword [0x5d8440]
movzx eax, byte [eax + 0x124]
push 0
movzx edx, word [ebx + 8]
push edx
push 0
mov ecx, eax
mov edx, 0xbc9
mov eax, esi
call fcn.00533c58
jmp 0x545503
mov eax, esi
call fcn.00535714
test al, al
je 0x545503
mov eax, esi
call fcn.00535578
test al, al
je 0x545503
mov eax, dword [ebp + 8]
mov dword [0x5d878c], eax
cmp dword [0x5d878c], 0
je 0x545381
mov edx, dword [0x5d878c]
mov eax, dword [0x5d70f0]
call fcn.005b5030
test al, al
jne 0x545381
xor eax, eax
mov dword [0x5d878c], eax
jmp 0x545503
cmp dword [0x5d878c], 0
je 0x5453c1
mov eax, dword [0x5d878c]
movzx eax, word [eax + 0x120]
mov dword [ebp - 8], eax
mov eax, dword [0x5d878c]
movzx eax, word [eax + 0x122]
mov dword [ebp - 0xc], eax
mov eax, dword [0x5d878c]
mov edi, dword [eax + 0x60]
mov eax, dword [0x5d878c]
cmp byte [eax + 0x78], 0
jne 0x545503
jmp 0x5453cc
mov dword [ebp - 8], edi
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], eax
xor edi, edi
mov eax, esi
call fcn.00535624
test al, al
je 0x545503
mov eax, esi
call fcn.00535578
test al, al
je 0x545503
mov byte [0x5d6cc1], 0
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d8880], eax
mov eax, dword [ebx + 0x38]
add eax, dword [esi + 0x974]
mov dword [0x5d6a14], eax
mov dword [0x5d70b8], 0x1f4
xor eax, eax
mov dword [0x5d88dc], eax
mov eax, dword [0x5d8440]
cmp edi, dword [eax + 0x60]
je 0x54543c
test edi, edi
je 0x54543c
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6cd8], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6cdc], eax
mov eax, dword [ebp - 0xc]
push eax
movzx eax, word [ebx + 8]
push eax
push 0
push edi
push 0
push 0
mov ecx, dword [ebp - 8]
mov dx, 0xbc9
mov eax, dword [0x5d8440]
call fcn.005cc4e8
mov eax, dword [ebp - 0xc]
push eax
movzx eax, word [ebx + 8]
push eax
push edi
mov ecx, dword [ebp - 8]
mov edx, 0xbc9
mov eax, esi
call fcn.00533c58
mov eax, 0x5d6f1c
lea edx, [ebx + 0xa]
call fcn.00404678
mov eax, dword [0x5d6f1c]
mov edx, 0x545568
call fcn.00404820
jne 0x5454a0
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6d4c], eax
jmp 0x545503
mov eax, dword [0x5d6f1c]
mov edx, 0x54557c
call fcn.00404820
jne 0x5454bd
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6d50], eax
jmp 0x545503
mov eax, dword [0x5d6f1c]
mov edx, 0x54558c
call fcn.00404820
jne 0x545503
cmp dword [0x5d878c], 0
je 0x545503
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x5d878c]
mov dword [edx + 0xf8], eax
jmp 0x545503
mov eax, 0x5d6ee8
mov edx, 0x5455a0
call fcn.00404468
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6eec], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x545520
lea eax, [ebp + 0xc]
call fcn.00404414
ret