Function at 0x5561f4
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 - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.004048c4
mov edi, 0x5d6de8
xor eax, eax
push ebp
push 0x5565ae
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
cmp dword [0x5d8440], 0
je 0x556598
cmp byte [0x5d703d], 0
je 0x556598
mov byte [0x5d703d], 0
xor ebx, ebx
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x9c]
imul dword [edi + 0x33]
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fdiv dword [0x5565c0]
call fcn.00402bcc
mov esi, eax
cmp byte [edi + 0x2e], 0
je 0x5562c4
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x98]
cmp esi, eax
jl 0x5562c4
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5d6b80]
cmp eax, 0xfa0
jb 0x5562c4
mov eax, 0x5d6964
mov edx, dword [ebp - 8]
call fcn.00404468
mov eax, dword [ebp - 4]
mov byte [eax + 0x7a8], 1
mov eax, 0x5d6948
mov edx, 0x5565cc
call fcn.00404468
imul edx, dword [edi + 0x2f], 0x3e8
mov eax, dword [ebp - 4]
call fcn.00551474
mov bl, 1
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x9c]
imul dword [edi + 0x2a]
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fdiv dword [0x5565c0]
call fcn.00402bcc
mov esi, eax
test bl, bl
jne 0x556352
cmp byte [edi + 0x25], 0
je 0x556352
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x98]
cmp esi, eax
jl 0x556352
mov eax, dword [edi + 0x26]
mov edx, 0x5565e8
call fcn.00404820
jne 0x55632f
mov eax, dword [edi + 0x26]
mov edx, 0x5565e8
call fcn.00404820
jne 0x556352
mov eax, dword [0x5d70ac]
mov eax, dword [eax + 0x7c]
call fcn.005c81d8
test al, al
je 0x556352
mov byte [0x5d6b88], 1
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6b8c], eax
mov ecx, 2
mov edx, dword [edi + 0x26]
mov eax, dword [ebp - 4]
call fcn.0054cd0c
mov ebx, eax
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x9c]
imul dword [edi + 0x21]
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fdiv dword [0x5565c0]
call fcn.00402bcc
mov esi, eax
test bl, bl
jne 0x5563e0
cmp byte [edi + 0x1c], 0
je 0x5563e0
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x98]
cmp esi, eax
jle 0x5563e0
mov eax, dword [edi + 0x1d]
mov edx, 0x5565e8
call fcn.00404820
jne 0x5563bd
mov eax, dword [edi + 0x1d]
mov edx, 0x5565e8
call fcn.00404820
jne 0x5563e0
mov eax, dword [0x5d70ac]
mov eax, dword [eax + 0x7c]
call fcn.005c81d8
test al, al
je 0x5563e0
mov byte [0x5d6b88], 1
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6b8c], eax
mov ecx, 2
mov edx, dword [edi + 0x1d]
mov eax, dword [ebp - 4]
call fcn.0054cd0c
mov ebx, eax
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x9e]
imul dword [edi + 0x46]
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fdiv dword [0x5565c0]
call fcn.00402bcc
mov esi, eax
cmp byte [edi + 0x41], 0
je 0x556461
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x9a]
cmp esi, eax
jl 0x556461
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [0x5d6b80]
cmp eax, 0xfa0
jb 0x556461
mov eax, 0x5d6964
mov edx, dword [ebp - 8]
call fcn.00404468
mov eax, dword [ebp - 4]
mov byte [eax + 0x7a8], 1
mov eax, 0x5d6948
mov edx, 0x5565fc
call fcn.00404468
imul edx, dword [edi + 0x2f], 0x3e8
mov eax, dword [ebp - 4]
call fcn.00551474
mov bl, 1
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x9e]
imul dword [edi + 0x4e]
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fdiv dword [0x5565c0]
call fcn.00402bcc
mov esi, eax
test bl, bl
jne 0x5564ef
cmp byte [edi + 0x3c], 0
je 0x5564ef
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x9a]
cmp esi, eax
jl 0x5564ef
mov eax, dword [edi + 0x3d]
mov edx, 0x5565e8
call fcn.00404820
jne 0x5564cc
mov eax, dword [edi + 0x3d]
mov edx, 0x5565e8
call fcn.00404820
jne 0x5564ef
mov eax, dword [0x5d70ac]
mov eax, dword [eax + 0x7c]
call fcn.005c81d8
test al, al
je 0x5564ef
mov byte [0x5d6b88], 1
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6b8c], eax
mov ecx, 2
mov edx, dword [edi + 0x3d]
mov eax, dword [ebp - 4]
call fcn.0054cd0c
mov ebx, eax
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x9e]
imul dword [edi + 0x4a]
mov dword [ebp - 0xc], eax
fild dword [ebp - 0xc]
fdiv dword [0x5565c0]
call fcn.00402bcc
mov esi, eax
test bl, bl
jne 0x55657d
cmp byte [edi + 0x37], 0
je 0x55657d
mov eax, dword [0x5d8440]
movzx eax, word [eax + 0x9a]
cmp esi, eax
jl 0x55657d
mov eax, dword [edi + 0x38]
mov edx, 0x5565e8
call fcn.00404820
jne 0x55655a
mov eax, dword [edi + 0x38]
mov edx, 0x5565e8
call fcn.00404820
jne 0x55657d
mov eax, dword [0x5d70ac]
mov eax, dword [eax + 0x7c]
call fcn.005c81d8
test al, al
je 0x55657d
mov byte [0x5d6b88], 1
call sub.kernel32.dll_GetTickCount_1
mov dword [0x5d6b8c], eax
mov ecx, 2
mov edx, dword [edi + 0x38]
mov eax, dword [ebp - 4]
call fcn.0054cd0c
mov ebx, eax
test bl, bl
je 0x556598
mov eax, 0x5d6964
mov edx, dword [ebp - 8]
call fcn.00404468
mov eax, dword [ebp - 4]
mov byte [eax + 0x7a8], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5565b5
lea eax, [ebp - 8]
call fcn.00404414
ret